Aller au contenu

4) Les variables

Que diriez-vous d’ajouter des cibles pour qu’on puisse tirer dessus ? 😀
Nous allons voir au cours de cette partie ce que sont les variables !

C’est quoi une variable ?

Une variable est comme une boite où l’on va stocker une information, pour pouvoir la réutiliser après. On peut par exemple stocker un nombre, ou du texte. Et ce nombre peut varier pendant que tourne votre jeu (d’où le nom de variable ^^ ).
En programmation, on aurait dû apprendre ce qu’est la mémoire et comment elle est stockée dans l’ordinateur. Mais, avec Construct, pas besoin, il se charge de tout. 🙂 Vous avez juste à retenir qu’une variable permet de stocker une valeur en mémoire dans l’ordinateur. Si vous souhaitez des exemples de variable, il y en a plein ! La vie du personnage, le nombre de balle, les dégâts qu’il inflige, le temps écoulé depuis le lancement de votre jeu, tout ceux-ci sont des variables. Il y en a évidemment plein d’autres.

Les variables, sous Construct

Vous allez voir comment ça marche.
Commencez par ajouter un nouveau sprite à la zone de travail, que vous nommerez cible (regardez le chapitre précèdent si vous avez oublié ^^ ). Je l’ai placé de cette manière :

La zone de travail (layout) actuellement.
Image utilisateur
(Cliquez pour agrandir)

Ce que nous voulons faire (évènement, action) :

  • 1) Lorsque l’on tire sur une cible, enlever un point de vie à la cible.
  • 2) Lorsque la cible n’a plus de vie, détruire la cible.

L’évènement : Lorsque l’on tire sur une cible

Commençons par le premier évènement. Comment faire pour savoir lorsque l’on tire sur une cible ? En fait c’est un peu subtil : lorsque l’on tire sur une cible, c’est que la balle a touché une cible. 🙂 On peut donc reformuler de cette manière : Lorsque la balle touche une cible. Allons donc dans l’éditeur d’évènements, et rajoutons un nouvel évènement. Que choisir ici ? Ça à un rapport avec la balle et la cible. Nous pouvons choisir celui que nous voulons, mais par habitude je choisis toujours le premier (libre à vous de faire comme moi ou pas, c’est la même chose :p ). Cliquez sur la balle puis sur Suivant.
Maintenant, comme auparavant, il faut choisir quel est la bonne catégorie. Lorsque la balle touche une cible. En cherchant, on remarque qu’il y a bien un groupe Collisions. 🙂 Choisissez On collision with another object, puisque l’on souhaite que l’évènement ait lieu lorsque la balle touche une cible. Cliquez sur suivant.

Mais, ils servent à quoi les deux autres ?

Celui que nous avons choisi permet de savoir lorsque la balle est en collision avec la cible. Les deux autres permettent de savoir lorsque la balle superpose la cible (quand la balle est sur la cible). La différence entre les deux est une histoire de position par rapport à la cible.

La c’est comme tout à l’heure, vous avez un bouton. Cliquez dessus pour choisir l’objet de collision, en l’occurrence c’est notre cible. 🙂 Puis cliquez sur terminé pour fermer la fenêtre.

L’action : enlever un point de vie à la cible

Ça y est, nous avons ajouté l’évènement. Maintenant, il nous faut ajouter l’action. Comment enlever un point de vie à la cible ? Pour l’instant elle n’a pas de vie !  Souvenez-vous des variables, je vous avais dit que grâce à elles, on pouvait stocker des informations. Ce que je ne vous ai pas dit, c’est qu’on pouvait soit stocker dans l’ordinateur, soit dans un objet !

Ça change rien au problème, mon personnage n’a toujours pas de vie !

Pas pour l’instant, non. C’est pour ça que nous allons créer une variable « vie« , que nous stockerons, comme je viens de vous le dire, dans notre cible ! 🙂

Ainsi, si vous souhaitez rajouter de la vie à notre personnage aussi, il faudra lui créer sa variable « vie« . Chacun aura la sienne, vu qu’on stocke la variable dans l’objet. Mais revenons à notre cible.

Voyons comment ajouter une variable à notre cible. Revenez tout d’abord sur la zone de travail (en cliquant sur Layout Editor à gauche de Event Sheet Editor). Puis sélectionnez l’objet cible.

Pour rappel, un sprite qui n’est pas sélectionné n’a rien autour de lui. Un sprite sélectionné a un contour bleu avec des points sur les bords.

Image utilisateur
Sprite qui n’est pas sélectionné
Image utilisateur
Sprite sélectionné

Vous allez voir que c’est pareil que pour les comportements. Jetez un oeil au propriétés de notre objet (sur le menu de gauche). Devant toutes ces listes, nous en connaissons une : les comportements. Mais cette fois nous allons en voir une autre : les variables. Déroulez alors le menu Private variables et vous obtenez ceci :

Image utilisateur
Le menu Private variables déplié

Si nous traduisons, Private variables donne variables privées. Je vous ai dit tout à l’heure que chaque objet avait ses propres variables. Mais nous verrons plus tard qu’il est aussi possible de créer des variables globales. Revenons à notre cible, et cliquez sur Add / Edit pour ajouter une nouvelle variable. Un menu s’offre à vous :

Image utilisateur
Le menu Gestionnaire de variables

Ce menu est le gestionnaire de variables. C’est ici que vous allez gérer toutes les variables de votre objet, ici c’est notre cible. Vous avez la possibilité d’ajouter une variable (Image utilisateur), supprimer une variable (Image utilisateur), d’éditer une variable (Image utilisateur), et de réorganiser leur place (Image utilisateur). Je vous rappel, nous souhaitons ajouter de la vie à notre cible. En d’autres termes, lui ajouter une variable vie. Ajoutez une variable en cliquant sur Image utilisateur. Les réglages sont simples : le nom de la variable (Name), le type de la variable (Type : nombre ou texte), et la valeur de la variable au début du programme(Initial). Je précise bien, pour la valeur de la variable, au début du programme car une variable change au cours de votre jeux.

Image utilisateur
Ajout de la variable vie

Remplissez les champs comme il le faut, puis cliquez sur OK pour valider. J’ai choisi 3 de vie par hasard, vous pouvez tout à fait choisir 1, 10, 50, comme vous voulez ! ^^ De retour sur le gestionnaire de variables, la variable vie apparaît devant vous. Vous pouvez cliquer sur Done (Fait) pour fermer cette fenêtre. Le menu Private variables a changé : notre variable vie s’est rajoutée, avec sa valeur initiale à coté.

Image utilisateur

C’est fait ! Notre cible a enfin de la vie ! 😀 Retournons désormais dans l’éditeur d’évènement. Enlever un point de vie à la cible. La variable vie est la vie de notre cible. Pour enlever un point de vie à la cible, il suffit alors de soustraire de 1 la variable vie ! 🙂
Ajoutez une action, à coté de l’évènement de collision. On se pose toujours la même question : avec quel objet cette action a t-elle un rapport ? Avec la cible, donc nous allons voir les actions du coté de la cible ! Cliquez sur cible puis sur suivant. 😉 Nous voulons changer la valeur de la variable vie. Il faudra donc regarder dans le groupe des variables, plus particulièrement le groupe Private variables. Vous pouvez ajouter un nombre à une variable (Add to value), définir une valeur à une variable (Set value), et soustraire une valeur à une variable (Substract from value). C’est le troisième choix qui nous convient : Enlever un point de vie à la cible. Cliquez sur Substract from value puis sur suivant.
Dans le menu devant vous, une liste vous propose de choisir la variable à soustraire, nous n’en avons qu’une, la variable vie, donc nous n’avons pas vraiment le choix. ^^ En dessous, dans la valeur de la variable, mettons 1 car nous souhaitons diminuer de 1 la vie de notre cible.

Image utilisateur
Les paramètres de l’action

Une fois terminé, cliquez sur Finish pour fermer la fenêtre.

Image utilisateur
L’action s’est rajoutée 🙂

Si vous essayez l’application, non seulement la cible ne meurt pas après lui avoir tiré dessus au moins 3 fois, mais en plus la balle traverse la cible. Avant de continuer, rajoutons une autre action pour corriger ce problème de la balle qui traverse la cible. Cliquez sur + New Action en face de l’évènement de collision, pour rajouter une deuxième action à cet évènement.

-> Nous souhaitons que la balle se détruise. 

Allez, essayez de l’ajouter tout seul, ça sera un bon petit exercice. Posez-vous les mêmes questions à chaque fois : Avec quel objet l’action a t-elle un rapport ? Dans quel groupe se situe l’action que je cherche ? (La plupart du temps, quand on ne sait pas où elle est, il suffit de chercher ^^ ).

Nous souhaitons que la balle se détruise. Avec quel objet l’action a t-elle un rapport ? Avec la balle, bien sur ! 😀
Cliquez alors sur balle puis sur suivant. Nous souhaitons détruire la balle. Détruire, en anglais, se traduit par Destroy. En cherchant bien, on trouve Destroy, dans la catégorie Misc (pourmiscellaneous, qui signifie Divers). Cliquez sur Destroy puis sur terminé. Il n’y a pas de paramètre.
Ce n’était pas difficile, non ? :p
Vous pouvez essayer le jeu cette fois, la balle se détruira ! C’est déjà mieux, et nous pouvons enfin passer au deuxième évènement.

L’évènement : Lorsque la cible n’a plus de vie

Maintenant que notre cible a de la vie, elle en perd aussi quand on lui tire dessus. Mais nous avons beau lui tirer dessus 1000 fois, elle ne se détruira pas ! 🙁 Nous devons donc rajouter un évènement :Lorsque la cible n’a plus de vie. En d’autres termes, lorsque la variable vie de notre cible est égale à 0.

Vous aurez remarqué que je reformule souvent les évènements, pour mieux les comprendre. Je vous conseil de faire de même, pour mieux savoir ce que vous allez faire. 🙂

Ajoutez un évènement. Encore et toujours la même question à se poser : quel objet ? Nous souhaitons savoir lorsque la cible n’a plus de vie, nous choisissons donc la cible ! Cliquez sur cible puis sur suivant. Comme tout à l’heure, nous allons voir du côté des variables, dans le groupe Private variables. Trois évènements possibles :

  • Compare a private variable : Compare la valeur d’un variable
  • Pick object with highest variable : choisir l’objet avec la plus grande variable
  • Pick object with lowest variable : choisir l’objet avec la plus basse variable

Les deux derniers de la liste sont semblables, et ne nous intéressent pas. Nous ne voulons pas savoir quelle cible à le plus ou le moins de vie. Il ne nous reste que le premier : compare la valeur d’un variable. C’est exactement ce qu’il nous faut, vu que nous souhaitons savoir quand la cible n’a plus de vie. Cliquez alors sur Compare a private variable, puis sur suivant. C’est presque comme tout à l’heure avec l’action sur la variable. Nous avons une variable à choisir, le type de comparaison (plus grand que, plus petit que…), et la valeur comparée. Les comparaisons ce font suivant cette forme :

Variable à comparer -> Type de comparaison -> comparé à quoi ?

Dans notre cas, nous souhaitons savoir quand : notre variable vie -> est plus petite ou égale à -> 0. Remplissez alors comme il faut les champs, puis cliquez sur terminé.

Image utilisateur
Les paramètres de l’évènement 🙂
Mais… Pourquoi tu as mis Less or equal (inférieur ou égal) au lieu de Equal (équal) ? Tu avais bien dit quand c’était égal à 0 tout à l’heure !

Oui, c’est vrai. 🙂 Vous pouvez tout à fait mettre égal à 0, ici il n’y aura aucun problème. Mais c’est juste par précaution, parce que si la cible descend à -1 de vie (sans passer par 0), elle ne sera pas morte ! Mais vu que la, elle perd la vie 1 par 1, il n’y a pas de problème. Ça coûte rien de plus, alors je met tout le temps. 🙂

Image utilisateur
L’évènement s’est rajouté !

L’action : détruire la cible

Plus que l’action à rajouter est nous en avons fini pour ce chapitre. Ici, c’est très simple, nous l’avons fait tout à l’heure, c’est exactement la même chose que pour la balle. Essayez, encore une fois de l’ajouter tout seul, c’est encore une fois comme la balle, sauf qu’on parle de la cible ! Je vous met quand même les étapes au cas ou :

Nous souhaitons que la cible se détruise. Avec quel objet l’action a t-elle un rapport ? Avec la cible !
Cliquez alors sur cible puis sur suivant. Nous souhaitons détruire la cible. Allez chercher Destroy dans la catégorie Misc. Cliquez sur Destroy puis sur terminé. Il n’y a pas de paramètre.

Voila, tout simplement ! 🙂

Image utilisateur
L’action s’est rajoutée !

Vous pouvez enfin tester l’application en toute tranquillité ! Tirez sur la cible autant de fois que vous voulez, elle se détruira au bout de 3 tirs ! 🙂 On peut enfin passer au chapitre suivant.

Attend ! Comment on fait pour rajouter d’autres cibles ? Parce qu’on s’ennuie avec une seule cible !

Ah oui, c’est vrai, j’oubliais. ^^ C’est très simple, il y a 3 manières possibles. Il faut bien sur être devant votre zone de travail (et non l’éditeur d’évènement).

Première manière : Sur la gauche se trouve un menu avec la liste de tous les objets de votre scène. Cliquez sur l’objet que vous souhaitez ajouter (la cible), restez appuyé sur le clic de la souris, glissez l’objet sur votre zone de travail, puis relâchez le clic. Un nouvel objet s’est crée. Répétez cette opération autant de fois que vous voulez d’objets.

Image utilisateur
La liste des objets de votre scène

Deuxième manière : Cliquez sur l’objet que vous voulez copier. Appuyez sur les touches Ctrl + C (copier), puis sur Ctrl + V (coller). Enfin, cliquez pour dire où vous voulez que soit l’objet copié.

Troisième manière : Restez appuyé sur Ctrl, cliquez sur l’objet que vous voulez copier, restez appuyé sur le bouton de la souris, glissez l’objet ailleurs, puis relâchez le clic. Attention à bien relâcher la touche Ctrl en dernier !

Maintenant que vous avez plusieurs cibles, vous pouvez vraiment vous amuser ! 😀 Si vous avez un doute, ou vous pensez ne pas avoir bien suivi, voici le fichier projet .cap pour l’observer !

3 commentaires sur “4) Les variables”

  1. Bonjour,
    avant toute chose merci pour ce tuto, vraiment bien fait 🙂
    J’ai un petit problème lors de la destruction de la balle.
    En effet, la collision entre ma balle et la cible ce fait avant ma cible, comme si celle-ci été transparente.
    Je ne vois pas comment régler cela, c’est pourquoi je vous demande votre aide 🙂

    Cordialement

Les commentaires sont fermés.