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

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

mySpatial:. Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) que Box2DSpatialComponent; var autre: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; pour chaque (var collisionType: String dans deathCollisionTypes) {if (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {

Si oui, nous envoyons un événement similaire à ce que l'HealthComponent déclencherait si elle devait tuer une entité .

De cette façon, ces composants qui veillaient pour l'entité de mourir, comme le DeathHandlerComponent, vont également travailler lorsque l'entité meurt suite à une collision

 var healthEvent:. HealthEvent = new HealthEvent (HealthComponent.DIED, 0, 0 , other.owner); owner.eventDispatcher.dispatchEvent (healthEvent); 

Et bien sûr, l'entité est détruite

 (owner.destroy).; temps de pause; }}} 

Le DeathHandlerComponent obtient une nouvelle variable appelée entityToCreateOnDeath qui nous permet de préciser quelle entité sera créée lorsqu'une entité meurt.

Cela va nous permettre de créer différentes explosions pour les ennemis et le joueur (puisque le joueur est un plus gros sprite)

DeathHandlerComponent.as

 DeathHandlerComponent public class étend EntityComponent {PositionReference public var:. PropertyReference = null; public var entityToCreateOnDeath: String; DeathHandlerComponent public function () {super (); } Fonction protégée override onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Protected override fonction onRemove (): void {super.onRemove (); owner.

eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Fonction protégée onDied (event: Event): void {var position: point = owner.getProperty (PositionReference); var entité: IEntity = TemplateManager.instance.instantiateEntity (entityToCreateOnDeath); si (entité! = null) {var spatiale: Box2DSpatialComponent = entity.lookupComponentByType (Box2DSpatialComponent) que Box2DSpatialComponent; var simpleSpatial: SimpleSpatialComponent = entity.lookupComponentByType (SimpleSpatialComponent) que SimpleSpatialComponent; si (spatiale! = null) {spatial.position = new Point (position.

x, Position.Y); } Else if (simpleSpatial! = Null) {simpleSpatial.position = new Point (position.x, Position.Y); }}}}

L'ennemi et les modèles de lecteur à la fois obtenir la nouvelle composante de DeathOnContactComponent.

Code de

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