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

Å gjøre en Space Invaders-klone med taste - Eksplosjoner

ox2DSpatialComponent som tilhører den annen enhet involvert i kollisjonen.

 public class DamageOnContactConponent strekker EntityComponent {public Var skade: int = 0; offentlig funksjon DamageOnContactConponent () {super (); } Beskyttet Styringsfunksjonen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beskyttet Styringsfunksjonen onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.

COLLISION_EVENT, OnCollision); } Private funksjon OnCollision (event: CollisionEvent): void {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; Var andre: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; Var otherHealth: HealthComponent = other.owner.lookupComponentByType (HealthComponent) som HealthComponent; if (otherHealth = null!) otherHealth.damage (skade); owner.destroy (); }}

Den nye DeathHandlerComponent komponent setter onDied funksjon å bli kalt i tilfelle av en HealthComponent.

DIED hendelse. Inne i onDied en ny forekomst av Explosion malen er opprettet og plassert. Legg merke til at vi prøver og trekke ut en henvisning til både en Box2DSpatialComponent og SimpleSpatialComponent komponent for å angi startposisjonen for eksplosjon. Selvfølgelig vet vi at eksplosjonen enhet inneholder en SimpleSpatialComponent (fordi det er hva vi spillet det i XML-filen), men jeg dro denne koden for å merke ett av problemene med trykknapp komponent design system, som er at komponenter som utfører samme funksjon er ganske ofte irrelevant.

I dette tilfellet både Box2DSpatialComponent og SimpleSpatialComponent gi en måte å plassere en enhet i verdensrommet, er den faktiske posisjonen variabelen ikke spesifisert som en del av et felles grensesnitt eller base klasse, tvinger oss til å sjekke for eksistensen av begge deler når du prøver å sette utgangsposisjon

 public class DeathHandlerComponent strekker EntityComponent {public Var PositionReference. PropertyReference = null; 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): vo

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