public class DamageOnContactConponent udvider EntityComponent {public Var skader: int = 0; offentlig funktion DamageOnContactConponent () {super (); } Beskyttet overstyringsfunktionen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beskyttet overstyringsfunktionen onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Private funktion OnCollision (hændelse: CollisionEvent): void {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; Var andet: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; Var otherHealth: HealthComponent = other.owner.lookupComponentByType (HealthComponent) som HealthComponent; hvis (otherHealth = null!) otherHealth.damage (skade); owner.
destroy (); }}
Den nye DeathHandlerComponent komponent sætter onDied funktionen til at blive kaldt i tilfælde af en HealthComponent.DIED begivenhed. Inde i onDied en ny instans af eksplosion skabelonen er oprettet og placeret. Bemærk, at vi forsøger at trække en henvisning til både en Box2DSpatialComponent og SimpleSpatialComponent komponent for at indstille den oprindelige position af eksplosionen.
Selvfølgelig ved vi, at eksplosionen enhed indeholder en SimpleSpatialComponent (fordi det er det, vi vildt det i XML-filen), men jeg forlod denne kode i at fremhæve en af de problemer med trykknap komponent design-system, som er, at komponenter, der udfører den samme funktion er ganske ofte uafhængige.
I dette tilfælde både Box2DSpatialComponent og SimpleSpatialComponent giver en måde at positionere en enhed i rummet, er den faktiske position variablen ikke angivet som en del af en fælles grænseflade eller base klasse, tvinger os til at tjekke for eksistensen af begge komponenter, når de forsøger at sætte udgangsposition
public class DeathHandlerComponent udvider EntityComponent {offentlige var PositionReference:. PropertyReference = null; offentlig funktion DeathHandlerComponent () {super (); } Beskyttet overstyringsfunktionen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Beskyttet overstyringsfunktionen onRemove (): void {super.onRemove (); ow
Realiseringen af et Space Invaders klon med Trykknap - Killing af Player
- Hvordan Stregkoder og Smartphones Vil Rearchitect Information
- Mysql tutorial og Kommandoer Del 1
- Kom godt i gang med Php
- Loop konstruktioner i C
- Den Foruddefinerede Exception Object i PHP
- Adgang beregnere i C ++ Classes
- Gratis blog Templates
- HTML 5 Basics
- Spoofing Caller ID
- Principper for en simpel C ++ Sequence Container