classe pública estende DamageOnContactConponent EntityComponent {var danos público: int = 0; função pública DamageOnContactConponent () {super (); } Function protected override OnAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Protected override função onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Function privado OnCollision (event: CollisionEvent): void {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) como Box2DSpatialComponent; var outro: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; var otherHealth: HealthComponent = other.owner.lookupComponentByType (HealthComponent) como HealthComponent; if (otherHealth! = null) otherHealth.damage (dano); owner.
destroy (); }}
O novo componente DeathHandlerComponent define a função onDied a ser chamado em caso de um evento HealthComponent.DIED. Dentro do onDied uma nova instância do modelo de explosão é criado e posicionado. Observe que nós tentamos e puxe uma referência tanto um componente Box2DSpatialComponent e SimpleSpatialComponent, a fim de definir a posição inicial da explosão.
Claro que sabemos que a entidade explosão contém um SimpleSpatialComponent (porque isso é o que jogo no arquivo XML), mas eu deixei este codigo em destaque um dos problemas com o sistema de design de componente PushButton, o que é que os componentes que executam a mesma função são, muitas vezes não relacionados.
Neste caso, tanto a Box2DSpatialComponent e SimpleSpatialComponent fornecer uma maneira de posicionar uma entidade no espaço, a variável posição real não é especificado como parte de um interface comum ou classe base, forçando-nos a verificar a existência de ambos os componentes ao tentar definir o posição inicial
classe pública estende DeathHandlerComponent EntityComponent {var PositionReference público:. PropertyReference = null; 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
Fazendo um clone de Space Invaders com PushButton - Matar o Player
- iPhone Discagem de um número de telefone Parte 2
- Fazendo um clone de Space Invaders com PushButton - Matar o Player
- Componentes COM com .net
- Computed Values
- Papervision 3D programação tutoriais - Clipping & amp; amp; Culling
- CSS Fixo Solução Posicionamento a um dos Problemas do quadro
- Fio Enquadrar uma chave Designing Web Tool:
- O desenvolvimento do iPhone Secrets Course
- Amigos em C ++ Classes
- O que é uma janela do Microsoft?