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

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

jogar o demo

BAIXAR O CÓDIGO FONTE

Voltar ao Índice TUTORIAL

Graças ao motor de física quando o jogador e um inimigo colidir o inimigo vai empurrar o jogador para fora do caminho. Em invasores do espaço de jogo deve terminar quando o inimigo e jogador colidem, por isso precisamos adicionar um componente que fará com que tanto o jogador como o inimigo a explodir em contato.

Este é um pouco diferente para o sistema de saúde utilizado na colisão entre um inimigo e os jogadores balas.

Nesse cenário, a bala irá subtrair alguma saúde do inimigo, e deve a saúde inimigos atingir 0 a HealthComponent vai destruir a entidade inimiga e enviar um evento para permitir que outros componentes saber que a entidade tenha morrido. Neste ponto, o inimigo tem uma unidade de saúde, e as balas subtrair uma unidade de saúde, de modo que o resultado final é que os inimigos vão morrer com um tiro. Mas, no futuro, pode querer adicionar inimigos que tomam dois ou mais tiros, e graças ao HealthComponent que pode ser feito modificando um elemento XML.


Por outro lado uma colisão entre um jogador e um inimigo deve sempre resultar em ambos sendo destruído. Para implementar esse um novo componente chamado DeathOnContactComponent é criado.

DeathOnContactComponent.as

 DeathOnContactComponent classe pública estende EntityComponent {

A coleção deathCollisionTypes mantém os nomes das entidades que farão com que esta entidade ser destruído quando colidem com ele

 deathCollisionTypes var públicos:. matriz; DeathOnContactComponent função pública () {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); }

Na função onCollision encontramos a Box2DSpatialComponent da entidade colidindo (lembre-se que você não pode assumir que event.collidee ou event.

collider consistentemente referem-se a outra entidade), e, depois, descobrir se a outra entidade colisão de nomes é um jogo para um daqueles na coleção deathCollisionTypes

 OnCollision função privada (event: CollisionEvent): void {var mySpatial:. Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) como Box2DSpatialComponent; var outro: Box2DSpatialComponent = event.collidee === mySp

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