*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et Space Invaders klon med Trykknap - Killing af Player

ee; for hver (var collisionType: String i deathCollisionTypes) {if (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {

Hvis så vi afsende en begivenhed svarer til, hvad det HealthComponent ville udløse, hvis det var at dræbe en enhed . På denne måde de komponenter, der ser for den enhed til at dø, ligesom DeathHandlerComponent, vil også arbejde, når virksomheden dør på grund af en kollision

 Var healthEvent:. HealthEvent = ny HealthEvent (HealthComponent.DIED, 0, 0 , other.owner); owner.eventDispatcher.

dispatchEvent (healthEvent)

Og selvfølgelig enheden er ødelagt

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

DeathHandlerComponent får en ny variabel kaldet entityToCreateOnDeath der giver os mulighed for at specificere, hvad enhed vil blive oprettet, når en virksomhed dør. Dette vil give os mulighed for at skabe forskellige eksplosioner for fjender og spilleren (da spilleren er en større sprite)

DeathHandlerComponent.as

 public class DeathHandlerComponent udvider EntityComponent {offentlige var PositionReference:.

PropertyReference = null; offentlig Var entityToCreateOnDeath: String; offentlig funktion DeathHandlerComponent () {super (); } Beskyttet overstyringsfunktionen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Beskyttet overstyringsfunktionen onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Beskyttet funktion onDied (hændelse: Begivenhed): void {var position: Punkt = owner.getProperty (PositionReference); Var enhed: IEntity = TemplateManager.instance.

instantiateEntity (entityToCreateOnDeath); hvis (= null enhed!) {var rumlig: Box2DSpatialComponent = entity.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; Var simpleSpatial: SimpleSpatialComponent = entity.lookupComponentByType (SimpleSpatialComponent) som SimpleSpatialComponent; hvis (= null rumlige!) {spatial.position = nye punkt (position.x, position.y); } Else if (simpleSpatial = null!) {SimpleSpatial.position = nye punkt (position.x, position.y); }}}}

fjenden og spilleren skabeloner både få den nye DeathOnContactComponent komponent.


Kode

spilleren får også DeathHandlerComponent, som er indstillet til at oprette den nye PlayerExplosion enhed, når spilleren dør (den PlayerExplosion skabelonen er nøjagtig den samme som den eksplosion skabelon, forventer, at det refere

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.