openbare klasse DamageOnContactConponent breidt EntityComponent {public var schade: int = 0; publieke functie DamageOnContactConponent () {super (); } Beschermde override functie onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beschermde override functie onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Prive-functie OnCollision (event: CollisionEvent): void {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) als Box2DSpatialComponent; var andere: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; var otherHealth: HealthComponent = other.owner.
lookupComponentByType (HealthComponent) als HealthComponent; if (otherHealth = null!) otherHealth.damage (schade); owner.destroy (); }}
De nieuwe DeathHandlerComponent component stelt de onDied functie bij een HealthComponent.DIED gebeurtenis te noemen. Binnen de onDied een nieuw exemplaar van de Explosion sjabloon wordt gemaakt en geplaatst. Merk op dat we proberen trek telkens zowel een Box2DSpatialComponent en SimpleSpatialComponent component om de beginpositie van de explosie te stellen.
Natuurlijk weten we dat de explosie entiteit bevat een SimpleSpatialComponent (want dat is wat we de game in het XML-bestand), maar ik liet deze code in op een van de problemen met de PushButton component ontwerp-systeem, dat is dat componenten die presteren markeren dezelfde functie zijn vaak los van elkaar.
In dit geval, zowel de Box2DSpatialComponent en SimpleSpatialComponent bieden een manier om een entiteit in de ruimte te plaatsen, wordt de actuele positie variabele niet opgegeven als onderdeel van een gemeenschappelijke interface of basisklasse, dwingen ons om te controleren op de aanwezigheid van beide componenten wanneer het proberen om de gestelde uitgangspositie
openbare klasse DeathHandlerComponent breidt EntityComponent {public var PositionReference.PropertyReference = null; publieke functie DeathHandlerComponent () {super (); } Beschermde override fu
Het maken van een Space Invaders kloon met PushButton - Het doden van de Player
- C ++ Templates
- Scopes in C ++
- Vervoer naar de Irrlicht 3D-engine weet - Lighting
- ActivePerl Loop Statements
- Oop en referenties in Php
- Vruchten van de iPad Application Development: 6 Must-Have iPad Apps
- Console applicatie voor het bellen met behulp van Event afgevaardigde in C # 1.1…
- Komeet Technology
- CSS vaste positionering oplossing voor een van de Frame Problems
- Mysql Tutorial En Commando Part 1
net
NET - C # - Hoe een herbruikbare Che…