*   >> läser Utbildning artiklar >> science >> programming

Att göra en Space Invaders klon med tryckknapp - Killing Player

dee; för varje (var collisionType: String i deathCollisionTypes) {if (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {

Om så vi skickar en händelse som liknar vad HealthComponent skulle utlösa om det skulle döda en enhet . På detta sätt de komponenter som tittar för företaget att dö, som DeathHandlerComponent, kommer också att arbeta när företaget dör på grund av en kollision Omdömen

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

dispatchEvent (healthEvent),

Och naturligtvis enheten förstörs Omdömen

 owner.destroy (). bryta; }}} 

DeathHandlerComponent får en ny variabel som kallas entityToCreateOnDeath som tillåter oss att ange vilken enhet som kommer att skapas när ett företag dör. Detta gör det möjligt för oss att skapa olika explosioner för fiender och spelaren (eftersom spelaren är en större sprite) katalog

DeathHandlerComponent.as Omdömen

 public class DeathHandlerComponent utökar EntityComponent {public var PositionReference.

PropertyReference = null; public var entityToCreateOnDeath: String; public function DeathHandlerComponent () {super (); } Skyddade override funktion onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Skyddade override funktion onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Skyddad funktion onDied (event: Event): void {var Position: Point = owner.getProperty (PositionReference); var enhet: IEntity = TemplateManager.instance.

instantiateEntity (entityToCreateOnDeath); if (enhet = null!) {var spatial: Box2DSpatialComponent = entity.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; var simpleSpatial: SimpleSpatialComponent = entity.lookupComponentByType (SimpleSpatialComponent) såsom SimpleSpatialComponent; if (rumslig = null!) {spatial.position = new Point (position.x, position.y); } Else if (simpleSpatial = null!) {SimpleSpatial.position = new Point (position.x, position.y); }}}}

Fienden och spelare mallar både få den nya DeathOnContactComponent komponenten.

Omdömen

Kod Omdömen

Spelaren får också DeathHandlerComponent, som är inställd på att skapa den nya PlayerExplosion enheten när spelaren dör (den PlayerExplosion mallen är exakt densamma som den explosions templat, förvänta sig att den refererar till en annan SpriteSheet).

Kod

Page   <<  [1] [2] 
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.