Avec la condition if, nous pouvons autoriser l’exécution de morceaux de code seulement lorsqu’une condition est remplie.
Pour créer une condition avec if, faites comme ceci :
|
|
Une condition ou une déclaration est quelque chose qui est vrai ou faux.
Par exemple : $5 > 9$
Le signe $>$ signifie “plus grand que”, donc la déclaration est que 5 est supérieur à 9, ce qui est faux.
Mettons une condition if autour du code qui incrémente x :
|
|
Lorsque vous lancez le jeu, vous remarquerez que notre rectangle ne bouge pas. C’est parce que la déclaration est fausse. Si nous la changeons en $5 < 9$ (5 est plus petit que 9), alors la déclaration devient vraie et le code à l’intérieur de la condition sera exécuté.
Avec cela, nous pouvons par exemple augmenter x jusqu’à 600 et quand il atteint cette valeur, arrêter le mouvement avec la condition $x < 600$ :
|
|
Si nous voulons vérifier qu’une valeur est égale à une autre, nous devons utiliser deux signes égal (==). Par exemple : $4 == 7$. Attention à bien faire la distinction entre = et == :
|
|
Nous pouvons aussi utiliser $>=$ (supérieur ou égal) et $<=$ (inférieur ou égal) pour vérifier si une valeur est supérieure ou égale, ou inférieure ou égale à une autre.
|
|
Les booléens
Une variable peut être soit true (vrai) soit false (faux). Ce type de variable est ce qu’on appelle un booléen.
Créons une nouvelle variable que nous appellerons move avec une valeur à true et vérifions que move est à true dans notre condition :
|
|
move est vrai donc notre rectangle bouge. Pour une meilleure lisibilité du code, on peut simplifier la condition comme ceci :
|
|
Si nous voulons vérifier si move est faux, nous pouvons mettre not devant :
|
|
Si nous voulons vérifier qu’un nombre n’est PAS égal à un autre, nous utilisons un tilde suivi d’un signe égal (~=) :
|
|
Nous pouvons aussi assigner le résultat d’une comparaison (true ou false) à une variable comme ceci :
|
|
Si nous vérifions que move est à true et que nous le mettons ensuite à false dans l’instruction, le code ne sera exécuté qu’une seule fois :
|
|
Les flèches et les touches
Faisons en sorte que le rectangle se déplace en fonction du maintien de la flèche droite. Pour cela, nous utilisons la fonction love.keyboard.isDown.
Remarquez comment le D de Down (enfoncé) est en majuscule. C’est le type de notation que nous appelons camelCase. Nous commençons avec le premier mot tout en minuscule puis le premier caractère de chaque mot suivant sera en majuscule.
Nous passons la chaîne “right” comme premier argument pour vérifier si la flèche droite est enfoncée :
|
|
Maintenant, quand nous maintenons enfoncée la flèche droite, notre rectangle se déplace.
Nous pouvons également utiliser else pour indiquer à notre jeu quoi faire lorsque la condition est fausse. Faisons déplacer notre rectangle vers la gauche lorsque nous n’appuyons pas sur la flèche droite :
|
|
Nous pouvons également vérifier une condition alternative après que la première soit fausse en utilisant elseif. Vérifions d’abord si la flèche droite est enfoncée, et si ce n’est pas le cas, vérifions si la flèche gauche l’est :
|
|
Essayez maintenant de faire bouger le rectangle vers le haut et vers le bas en modifiant ce code.
and et or
Avec and, nous pouvons vérifier si plusieurs conditions sont vraies simultanément :
|
|
Avec or, la condition if sera exécutée si au moins l’une des conditions est vraie :
|
|
Précision importante
Pour être plus précis, la condition if vérifie si l’expression n’est ni false ni nil. Voici quelques exemples (sur une seule ligne pour simplifier, mais ils peuvent être écrits sur plusieurs lignes) :
|
|
Résumé
Avec if, nous pouvons autoriser certains morceaux de code à être exécutés uniquement lorsqu’une condition est remplie. Nous pouvons vérifier si un nombre est plus grand, plus petit ou égal à un autre nombre ou à une autre valeur. Une variable peut être true ou false (ce type de variable est appelé booléen). Nous pouvons utiliser else pour spécifier le comportement à adopter quand la condition est fausse, ou elseif pour effectuer des vérifications supplémentaires.