*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en Space Invaders-klone med taste - Killing Player

) {if (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {

Hvis så vi sende en hendelse som ligner på hva HealthComponent ville utløse hvis det var å drepe en entitet . På denne måten de komponentene som ser for foretaket å dø, som DeathHandlerComponent, vil også arbeide når foretaket dør på grunn av en kollisjon

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

Og selvfølgelig foretaket er ødelagt

 owner.destroy (.

); gå i stykker; }}}

DeathHandlerComponent får en ny variabel kalt entityToCreateOnDeath som tillater oss å spesifisere hva enheten vil bli opprettet når en enhet dør. Dette vil gi oss mulighet til å lage ulike eksplosjoner for fiender og spilleren (siden spilleren er en større sprite)

DeathHandlerComponent.as

 public class DeathHandlerComponent strekker EntityComponent {public Var PositionReference.

PropertyReference = null; offentlig Var entityToCreateOnDeath: String; offentlig funksjon DeathHandlerComponent () {super (); } Beskyttet Styringsfunksjonen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Beskyttet Styringsfunksjonen onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Beskyttet funksjon onDied (hendelse: Hendelse): void {var posisjoner: Point = owner.getProperty (PositionReference); Var enhet: IEntity = TemplateManager.instance.

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

Fienden og de spiller maler både få den nye DeathOnContactComponent komponent.


Kode

Spilleren får også DeathHandlerComponent, som er satt til å opprette den nye PlayerExplosion enhet når spilleren dør (det PlayerExplosion malen er nøyaktig den samme som Explosion mal, forventer at den refererer til en annen SpriteSheet).

Kode Anmeldelser

Page   <<  [1] [2] 
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.