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 === mySpFazendo um clone de Space Invaders com PushButton - balas inimigas
- Tutorial de Programação Papaervision 3D - Explodo-logo
- Breve Introdução ao Uml
- Definição de dados Mysql Basics
- A Web é se tornar um & amp; lsquo; privacidade Zona Livre de & amp; rsquo;?
- Combo Box Messages
- Predefinido do Windows Cursors
- Referência Perl para um Hash
- Tutoriais de Java - Lição 4: declarações condicionais (if ... else if ... el…
- Os resultados da pesquisa Html Document
- Lista Argumento normal em Php