*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een Space Invaders kloon met PushButton - Het doden van de Player

ox2DSpatialComponent; var andere: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; voor elke (var collisionType: String in deathCollisionTypes) {if (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {

Zo ja we verzending van een evenement vergelijkbaar met wat de HealthComponent zou veroorzaken als het aan een entiteit te doden . Op deze manier onderdelen die kijken voor de entiteit om te sterven, net als de DeathHandlerComponent, werkt ook bij de entiteit sterft als gevolg van een botsing

 var healthEvent.

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

En natuurlijk de entiteit wordt vernietigd

 owner.destroy ().; breken; }}} 

De DeathHandlerComponent krijgt een nieuwe variabele genaamd entityToCreateOnDeath die ons in staat stelt om aan te geven welke entiteit zal worden aangemaakt wanneer een entiteit sterft. Dit zal ons toelaten om verschillende explosies voor de vijanden en de speler te maken (omdat de speler een grotere sprite)

DeathHandlerComponent.

as

 openbare klasse DeathHandlerComponent breidt EntityComponent {public var PositionReference. PropertyReference = null; public var entityToCreateOnDeath: String; publieke functie DeathHandlerComponent () {super (); } Beschermde override functie onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Beschermde override functie onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Beschermd functie onDied (event: Event): void {var positie: Point = owner.

getProperty (PositionReference); var entiteit: IEntity = TemplateManager.instance.instantiateEntity (entityToCreateOnDeath); if (entiteit = null!) {var ruimtelijke: Box2DSpatialComponent = entity.lookupComponentByType (Box2DSpatialComponent) als Box2DSpatialComponent; var simpleSpatial: SimpleSpatialComponent = entity.lookupComponentByType (SimpleSpatialComponent) als SimpleSpatialComponent; if (ruimtelijke = null!) {spatial.position = new Point (position.x, position.y); } Else if (simpleSpatial = null!) {SimpleSpatial.position = new Point (position.x, position.

y); }}}}

De vijand en de speler templates allebei de nieuwe DeathOnContactComponent component.

Code

De speler krijgt ook de DeathHandlerComponent, die is ingesteld om de nieuwe PlayerExplosion

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.