Plus de logique de jeu
Si chaque Évènement est décrit avec autant de détails que précédemment, ce tutoriel va être assez long. Rendons la description un peu plus brève pour les prochains Évènements. Souvenez-vous que les étapes pour ajouter une condition ou une action sont :
- Double cliquez pour insérer un nouvel Évènement ou cliquez le lien Ajouter une action pour ajouter une action.
- Double cliquez sur l'objet pour lequel ajouter la condition/action.
- Double cliquez la condition/action que vous désirez.
- Entrez les paramètres si besoin est.
A partir de maintenant, les Évènements vont être décrits en tant que l'objet, poursuivi par la condition/action, poursuivi par ses paramètres. Par exemple, l’Évènement que nous avons pourrait être écrit :
Ajouter une condition Système►Chaque tick
Ajouter une action Joueur►Définir l'angle vers une position, et pour X: Souris.X
, Y: Souris.Y
Faire que le Joueur tire
Quand le joueur clique, il devrait tirer une balle. Cela peut être fait avec l'action Faire apparaître un autre objet de l'objet Joueur qui créé une nouvelle instance de l'objet au même angle et position. Le mouvement Projectile que nous avons ajouté plus tôt va le faire se déplacer vers l'avant. Faites l’Évènement suivant :
Condition: Souris►Lors d'un clic►Clic gauche (le paramètre par défaut)
Action: Joueur►Faire apparaître un autre objet, et pour l'Objet choisissez l'objet Balle. Laissez les autres paramètres tels quel.
Votre Évènement devrait ressembler à ceci:
Si vous exécutez le jeu, vous pouvez tirer des projectiles ! Cependant, vous pouvez remarquer que les balles partent depuis le milieu du Joueur plutôt que depuis le bout de son arme. Corrigeons cela en plaçant un point d'image au bout de l'arme. Un point d'image est juste une position dans l'image d'où l'on peut faire apparaître des objets et que nous pouvons référencer dans l'action Faire apparaître un autre objet.
Cliquez droit sur le Joueur dans la Barre de Projet et sélectionnez Éditer l'animation.
L'éditeur d'images pour le Joueur apparaît de nouveau. Cliquez sur l'outil Origine et point d'image:
... alors le panneau de côté affiche une liste de points d'image:
Notez que l'origine de l'objet apparaît dans la liste. C'est le "point chaud" ou "point de pivot" de l'objet. Si vous modifiez la rotation de l'objet, il tourne autour de l'origine. C'est aussi ce qui est utilisé quand vous faite apparaître un objet au point d'image 0, comme l'a fait notre action. Nous voulons ajouter un autre point d'image pour représenter l'arme, donc cliquez droit dans la liste et sélectionnez Ajouter un nouveau point d'image. Un nouvel item apparaît dans la liste et une icône apparaît sur l'image indiquant la position du point d'image. Cliquez gauche au bout de l'arme du Joueur pour placer le point d'image à cet endroit:
Fermez l'éditeur d'images. Double cliquez sur l'action Faire apparaître un autre objet que nous avons ajouté précédemment et changez Point d'image à 1
. L’Évènement devrait maintenant ressembler à ça (notez que cela dit Point d'image 1):
Faites un aperçu du jeu de nouveau. Les projectiles sortent désormais du canon de l'arme ! Les Balles ne font rien de plus à l'heure actuelle. Néanmoins, espérons que vous commencez à réaliser qu'une fois que vous avez pris le coup du système d’Évènements, vous pouvez rapidement définir la logique de votre jeu.
Faisons en sorte que les Balles tuent les Monstres. Ajoutez l’Évènement suivant :
Condition: Balle►Lors de la collision avec un autre objet►Monstre.
Action: Monstre►Détruire
Action: Balle►Faire apparaître un autre objet►Explosion
Action: Balle►Détruire
Voici à quoi ressemble l’Évènement terminé:
L'effet d'explosion
Faites un aperçu du jeu et essayez de tirer sur un monstre. Oups, l'explosion a une grosse bordure noire !
Vous pouvez avoir prédit que cela ressemblerait exactement à cela depuis le départ et vous être demandé si notre jeu allait vraiment ressembler à cela ! Pas de soucis, ce ne sera pas le cas. Cliquez sur l'objet Explosion dans la Barre de Projet. Ses propriétés s'affichent dans la Barre de Propriétés sur la gauche. Dans la section Effets définissez le Mode de fusion à Additif. Essayez de nouveau le jeu.
Pourquoi cela fonctionne-t-il ? Sans entrer trop dans les détails, les images ordinaires sont collées sur le dessus de l'écran. Avec le mode de fusion additif, chaque pixel est à la place ajouté (comme dans sommé) avec les pixels de l'arrière-plan sous lui. Le noir est un pixel de valeur zéro, donc rien n'est ajouté, vous ne voyez pas l'arrière-plan noir. Les couleurs plus claires ajoutent plus, donc apparaissent plus vives. C'est super pour les effets d'explosion et d'éclairage.
Rendre les Monstres un peu plus malins
Pour l'instant, les monstres se baladent juste depuis là où ils sont vers la droite. Rendons-les un peu plus intéressants. Tout d'abord, ajoutons leur un angle aléatoire.
Condition: Système►Au démarrage de la scène
Action: Monstre►Définir l'angle à Aléatoire(360)
Ils vont toujours se balader pour toujours lorsqu'ils quittent la scène, pour ne plus jamais être vus. Gardons les à l'intérieur de la zone de jeu. Ce que nous allons faire et de les faire pointer vers le Joueur lorsqu'ils quittent la scène. Cela accompli deux choses: ils restent toujours au sein de la scène et si le Joueur reste immobile les Monstres finiront par lui tomber dessus !
Condition: Monstre►Est à l'extérieur de la scène
Action: Monstre►Définir l'angle vers une position X: Joueur.X
Y: Joueur.Y
Voilà à quoi ressemblent nos deux Évènements terminés:
Exécutez le jeu. Si vous attendez un moment, vous remarquerez que les Monstres restent dans la scène également et qu'ils vont dans toute sorte de directions. C'est à peine une intelligence artificielle (AI) mais ça va le faire !
Maintenant, supposons que nous voulions tirer sur un Monstre cinq fois avant qu'il ne meurt, au lieu d'une mort instantanée tel que c'est le cas actuellement. Comment ferions nous cela ? Si nous ne gardons en mémoire qu'un seul compteur "Santé" alors quand nous aurons touché un Monstre cinq fois tous les Monstre mourront. A la place, nous avons besoin que chaque Monstre se souvienne de sa propre santé. Nous pouvons faire cela à l'aide des variables d'instance.