Français

/

English

Programmation, Création de jeux vidéo, UI/UX design et Retro Gaming

Introduction au moteur de jeu 2D LÖVE

Introduction au moteur de jeu 2D LÖVE

Cet article peut être consulté de manière isolée ou faire suite à l’article Installation du framework LÖVE sur un Raspberry Pi 4/400
Dans cet article je vais vous présenter les bases du framework LÖVE.

Les fonctions de callback (rappel)

LÖVE utilise différentes fonctions de callback prédéfinis, pour servir différents besoins.
En programmation, un callback est une fonction qui opère, un peu, de manière inversée. Dans le cas d’une fonction ordinaire, lorsqu’elle est appelée dans le code le langage fait quelque chose, alors que dans le cas d’une fonction de callback, elle est appelée à certains moments précis prédéfinis.

Par exemple la fonction love.load n’est appelée qu’une seule fois au début du code, et avant tout autre callback, au contraire de la fonction love.update qui est-elle appelée en continu.

C'est la fonction de boucle principale love.run qui se charge d’exécuter toutes ces fonctions de callback. Cette fonction est gérée par défaut par LÖVE et dans la plupart des cas, vous n’avez pas besoin de la déclarer dans votre code.

Les 3 principales fonctions de callback de LÖVE sont :

love.load


function love.load()
    -- Votre code ici
end

La fonction love.load n’est appelée qu’une seule fois au démarrage. C’est généralement là que vous chargez les ressources, initialisez les variables et définissez les paramètres spécifiques à vos besoins. Toutes ces choses peuvent être faites n’importe où ailleurs, mais les faire ici vous assure qu’elles ne seront exécutées qu’une seule fois, ce qui économise des ressources système.

love.update


function love.update(dt)
    -- Votre code ici
end

La fonction love.update est appelée en continu (de manière répétée) et est l'endroit ou la plupart de vos opérations et calcule sont effectués.
(dt) à la suite du nom de la fonction de callback signifie delta time et représente le nombre de secondes écoulées depuis le dernier appel de cette fonction en rapport avec la vitesse d’exécution de votre machine (vitesse de votre ordinateur / processeur).

love.draw


function love.draw()
    -- Votre code ici
end

La fonction love.draw est dédiée aux opérations de dessin, toutes les fonctions de type love.graphics.draw doivent être appelées à l’intérieur de celle-ci.
Comme la fonction love.update, cette fonction est aussi appelée en continu. Gardez à l’esprit que toutes opérations réalisées à l’intérieur de celle-ci et placé à la fin aura un effet sur celles du début.

Toutes les fonctions de callback sont optionnelles, mais la plupart des projets utilisent au moins les 3 fonctions de callback ci-dessus

Squelette d’un programme LÖVE

En suivant les informations présentées dans la rubrique précédente, voici à quoi ressemble le squelette de code d’un projet de jeu / programme en LÖVE, une fois les fonctions principales de callback écrites :


function love.load()
    -- Votre code ici
end

function love.update(dt)
    -- Votre code ici
end

function love.draw()
    -- Votre code ici
end

En programmation, on a pour habitude de commenter certaines parties de notre code, avec LÖVE et Lua, vous pouvez écrire un commentaire en utilisant -- devant un texte / ligne, cet élément sera ignoré par le programme et ne sera pas exécuté.


Si vous souhaitez plus d’information sur le framework LÖVE et le langage Lua, je vous invite à consulter les liens références ci-dessous :

LÖVE (Love2d)
En anglais
https://love2d.org/wiki/Main_Page

Programming in Lua
En anglais
https://www.lua.org/pil/

Auteur

Cédric Ricci

Directeur artistique, Designer UI/UX et Game Developer français basé à Tokyo, Japon. Travaille avec Forever Entertainment, Highball Games et T.A. Publishing.

Commentaires