*   >> Leitura Educação Artigos >> science >> programação

Fazendo um clone de Space Invaders com PushButton - Matar o Player

atial event.collider:? event.collidee; para cada (var collisionType: String em deathCollisionTypes) {if (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {

Se por isso, enviar um evento semelhante ao que o HealthComponent provocaria se fosse para matar uma entidade . Desta forma, os componentes que prestar atenção para a entidade de morrer, como o DeathHandlerComponent, também irá trabalhar quando a entidade morre devido a uma colisão

 var healthEvent:. HealthEvent = new HealthEvent (HealthComponent.DIED, 0, 0 , other.owner); owner.

eventDispatcher.dispatchEvent (healthEvent);

E, claro, a entidade está destruído

 owner.destroy (.); parar; }}} 

O DeathHandlerComponent ganha uma nova variável chamada entityToCreateOnDeath que nos permite especificar qual entidade será criado quando uma entidade morre. Isso nos permitirá criar diferentes explosões para os inimigos e o jogador (uma vez que o jogador é um sprite maior)

DeathHandlerComponent.as

 classe pública estende DeathHandlerComponent EntityComponent {var PositionReference público:.

PropertyReference = null; entityToCreateOnDeath var público: String; DeathHandlerComponent função pública () {super (); } Function protected override OnAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Protected override função onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Function protegido onDied (event: Event): void {var posição: Ponto = owner.getProperty (PositionReference); entidade var: IEntity = TemplateManager.instance.

instantiateEntity (entityToCreateOnDeath); if (entidade! = null) {var espacial: Box2DSpatialComponent = entity.lookupComponentByType (Box2DSpatialComponent) como Box2DSpatialComponent; var simpleSpatial: SimpleSpatialComponent = entity.lookupComponentByType (SimpleSpatialComponent) como SimpleSpatialComponent; if (espacial! = null) {spatial.position = new Point (position.x, position.y); } Else if (simpleSpatial! = Null) {simpleSpatial.position = new Point (position.x, position.y); }}}}

O inimigo e os modelos de jogador quer chegar o novo componente DeathOnContactComponent.


Código

O jogador também recebe o DeathHandlerComponent, que é definido para criar a nova entidade quando PlayerExplosion o jogador morre (o modelo PlayerExplosion é exatamente o mesmo que o modelo de explosão, esperar

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Leitura Educação Artigos,https://artigos.nmjjxx.com All rights reserved.