*   >> Lecture Éducation Articles >> science >> la programmation

Faire un clone de Space Invaders avec PushButton - Tuer le Player

jouer à la démo

télécharger le code SOURCE

Retour à la index du tutoriel

Merci pour le moteur physique quand le joueur et l'ennemi se heurtent l'ennemi va pousser le joueur hors de la voie. Dans envahisseurs de l'espace du jeu devraient prendre fin quand l'ennemi et le joueur se heurtent, nous avons donc besoin d'ajouter un composant qui va provoquer à la fois le joueur et l'ennemi pour exploser au contact.

Ceci est légèrement différente pour le système de santé utilisé dans la collision entre un ennemi et les joueurs balles.

Dans ce scénario, la balle va soustraire une certaine santé de l'ennemi, et devrait l'atteindre 0 ennemis santé du HealthComponent sera ensuite détruire l'entité ennemie et distribuer un événement de laisser d'autres composants savent que l'entité est mort. À ce stade, l'ennemi a une unité de santé, et les balles soustraire 1 unité de la santé, de sorte que le résultat final est que les ennemis vont mourir d'un seul coup.

Mais à l'avenir, nous pouvons vouloir ajouter ennemis qui prennent deux ou plusieurs coups de feu, et grâce à la HealthComponent qui peut être fait en modifiant un élément XML.

En revanche une collision entre un joueur et un ennemi doit toujours entraîner à la fois en train d'être détruite. Pour mettre en œuvre ce nouveau composant appelé un DeathOnContactComponent est créé.

DeathOnContactComponent.

as

 DeathOnContactComponent public class étend EntityComponent {

La collection deathCollisionTypes détient les noms des entités qui vont entraîner cette entité être détruits quand ils entrent en collision avec elle

 deathCollisionTypes public var:. tableau; DeathOnContactComponent public function () {super (); } Fonction protégée override onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, onCollision); } Protected override fonction onRemove (): void {super.onRemove (); owner.eventDispatcher.

removeEventListener (CollisionEvent.COLLISION_EVENT, onCollision); }

Dans la fonction onCollision nous trouvons la Box2DSpatialComponent de l'entité de collision (rappelez-vous que vous ne pouvez pas supposer que event.collidee ou event.collider aurez toujours se référer à l'autre entité), puis nous trouvons si de l'autre entité Nom de collision est un match pour l'un de ceux dans la collection deathCollisionTypes

 onCollision de fonction privée (de l'événement: CollisionEvent): void {var 

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.