jouer à la démo
télécharger le code SOURCE
Retour à la index du tutoriel
Détruire un ennemi en réponse à une collision avec une balle de joueurs peut sembler assez simple, mais il ya un peu de travail qui doit être fait en arrière-plan pour gérer la santé de l'ennemi, diminuer que la santé en réponse à une collision avec une balle, et enfin pour afficher une explosion quand l'ennemi est mort.
L'explosion, comme tout autre sprite d'animation, est défini dans les fichiers XML.
Comme les balles qu'elle existe en tant que matrice, mais ne sont pas ajoutées à un groupe d'utilisateurs, de sorte qu'il ne soit pas chargé lorsque le niveau est chargé. Parce que l'explosion ne participera pas à la détection de collision ou d'être déplacé autour de l'écran il ya peu de nécessité de simuler avec le moteur physique Box2D. Ainsi, la composante spatiale sera un SimpleSpatialComponent, contrairement à la Box2DSpatialComponent utilisé pour les ennemis, joueur et balles. En dehors de cela les mêmes rendu et d'animation composants sont ajoutés à l'entité d'explosion.
Code de
En outre, un nouveau composant appelé DestroyAfterCountdownComponent est ajouté. Le but de cette composante est de détruire une entité après un certain laps de temps. Dans ce cas nous voulons détruire l'entité d'explosion une fois l'animation est terminée.
Code de
Bouton poussoir est livré avec une composante pratique appelé HealthComponent qui peut être utilisé pour maintenir la santé d'une entité, la cause endommager à une entité en diminuant la santé, et de détruire l'entité une fois la totalité de sa santé est parti.
Ce composant est ajouté au modèle de l'ennemi, et nous avons mis la santé initial de l'ennemi à 1 (par défaut à 100).
Code de
Lorsque la santé géré par le HealthComponent est réduite à zéro l'entité est détruite par défaut, mais il distribue également un événement de laisser d'autres composants savent que l'entité est mort. Le DeathHandlerComponent est utilisé pour regarder pour cet événement et ajouter le une nouvelle instance de l'entité d'explosion.
Code de
Le DamageOnContactConponent, qui a été introduit dans le dernier tutoriel, a été modifié pour trouver le composante de l'entité qui est a heurté et appeler sa fonction de dommages, ce qui réduira la santé de l'autre entité et finalement détruire la santé. Le CollisionEvent qui est passé à la fonction d'écouteur d'événem