Stencyl Tower Defense Leçon 7

Suivre une cible


Actuellement nos ennemis meurent quand ils entrent dans la zone des tours. Mais nous aimerions que les tours tirent sur les ennemis. Nous allons donc créer un nouvel acteur, bullet, et le programmer pour qu'il suive les ennemis, un peu comme un missile à tête chercheuse.


1- Créer l'acteur qui va suivre, ici la bullet

File> Import ressource
Choisir cette image :
external image Bullet.png


2- Designer une nouvelle behavior "homing device"
Aller dans la dashboard et créer une nouvelle actor behavior

Dans cette behaviour, on commence par programmer le fait qu'en tous temps, la balle doit suivre la direction de l'ennemi.
Si Elle est assez proche de l'ennemi alors elle lui inflige des dommages.
Attention s'il n'y a aucun ennemi à viser ou si l'ennemi est mort, il est inutile de viser.

Créer les nouveaux attributs suivants :

variables.png
Insérer le code suivant :
fonction de suivi.png

dx et dy désignent la distance en x et la distance en y entre deux point ( ici entre la balle et sa cible). Les deux lignes de code "set dx to…" et "set dy to…" servent donc a dire à la balle "la cible est à telle distance de toi en x et en y".
La ligne "set velocity to" utilise la fonction mathématique atan2 ( qui prend les distances dx et dy en paramètres) pour déduire l'angle que doit avoir la balle pour parvenir à toucher la cible.

Mais comment dire à la balle qui est l'ennemi à suivre (Target) ???
Réponse dans la prochaine leçon !