Les débuts avec love2d

Qu’est-ce que c’est que Löve ?

Löve est ce que nous appelons un framework. Dit plus simplement c’est un outil qui permet de programmer des choses plus facilement.

LÖVE est écrit en C++ et OpenGL qui sont tous deux considérés pour être très difficiles. Le code source de LÖVE est très complexe. Mais tout ce code complexe permet la création d’un jeu beaucoup plus facile pour nous.

Par exemple, avec love.graphics.ellipse(), nous pouvons dessiner une ellipse. Voici le code source derrière ça écrit en C++ :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
void Graphics::ellipse(DrawMode mode, float x, float y, float a, float b, int points)
{
  float two_pi = static_cast<float>(LOVE_M_PI * 2);
  if (points <= 0) points = 1;
  float angle_shift = (two_pi / points);
  float phi = .0f;

  float *coords = new float[2 * (points + 1)];
  for (int i = 0; i < points; ++i, phi += angle_shift)
  {
      coords[2*i+0] = x + a * cosf(phi);
      coords[2*i+1] = y + b * sinf(phi);
  }

  coords[2*points+0] = coords[0];
  coords[2*points+1] = coords[1];

  polygon(mode, coords, (points + 1) * 2);

  delete[] coords;
}

Il est possible que vous ne puissiez pas comprendre le code ci-dessus et c’est exactement pourquoi nous utilisons LÖVE. Il prend soin de s’occuper des parties difficiles de la programmation de jeux, pour nous laisser seulement la partie amusante.

lua

Lua est le langage de programmation qu’utilise LÖVE. Lua est un langage à part entière et n’est pas réalisé par ou pour LÖVE. Les créateurs de LÖVE ont simplement choisi Lua comme langage pour leur framework.

Alors quelle partie de ce que nous codons appartient à LÖVE et quelle partie appartient à Lua ?
C’est très simple : Tout ce qui commence par love fait partie du framework LÖVE. Tout le reste est du Lua.

Ce sont des fonctions faisant partie du framework LÖVE :

1
2
love.graphics.circle("fill", 10, 10, 100, 25)
love.graphics.rectangle("line", 200, 30, 120, 100)

Et ceci est simplement du Lua:

1
2
3
4
function test(a, b)
    return a + b
end
-- Output: 30

Si c’est encore confus pour vous, ce n’est pas grave. Ce n’est pas le plus important pour le moment.

Comment Löve travaille ?

Info
Il est nécessaire d’avoir installé Löve à partir de maintenant. Retournez au chapitre 1 si vous ne l’avez pas encore fait.

LÖVE appel 3 fonctions. La première est love.load(). Dedans nous créons nos variables.

Après ça, il appel love.update() et love.draw() répétitivement dans cet ordre.

Donc, pour résumer:

  1. love.load
  2. love.update
  3. love.draw
  4. love.update
  5. love.draw
  6. love.update

En arrière plan, LÖVE appelle ces fonctions donc nous les créons et les remplissons avec du code. C’est ce que nous appelons un callback (rappel).

LÖVE est composée de modules comme love.graphics, love.audio, love.filesystem. Il y en a 15 et chacun se concentre sur 1 chose. Tout ce qui vous dessinez appartient à love.graphics et tout ce qui à attrait avec le son fait partie de love.audio.

Pour le moment concentrons nous sur love.graphics

LÖVE a un wiki avec des explications pour chaque fonction. Disons que nous voulons dessiner un rectangle. Sur le wiki, nous allons sur love.graphics et sur cette page, nous cherchons “rectangle”. On y trouve love.graphics.rectangle.

Cette page nous indique ce que fait cette fonction et les arguments dont elle a besoin. Le premier argument est le mode et doit être du type DrawMode. Nous pouvons cliquer sur DrawMode pour obtenir plus d’informations sur ce type.

DrawMode est une chaîne de caractère qui peut être soit “fill” soit “line”. Elle contrôle comment les formes sont dessinées. Tous les arguments suivants sont des nombres donc si nous voulons dessiner un rectangle plein, nous mettrons le code suivant :

1
2
3
function love.draw()
	love.graphics.rectangle("fill", 100, 200, 50, 80)
end

Maintenant, quand nous exécutons le jeu, nous verrons un rectangle plein.

Les fonctions fournies par LÖVE sont ce que nous appelons l’API. API signifie Application Programming Interface. Vous pouvez lire l’article Wikipedia pour savoir ce qu’est exactement une API, mais dans notre cas, cela signifie simplement les fonctions LÖVE que vous pouvez utiliser.

Résumé

LÖVE est un outil qui nous permet de créer plus facilement des jeux. LÖVE utilise un langage de programmation appelé Lua. Tout commence par « love. » et fait partie du framework LÖVE. Le wiki nous dit tout ce que nous devons savoir sur l’utilisation de LÖVE.