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 !