jogar o demo
BAIXAR O CÓDIGO FONTE
Voltar ao Índice TUTORIAL
Destruir um inimigo em resposta a uma colisão com uma bala jogadores pode soar bastante simples, mas há um pouco de trabalho que tem de ser feito em segundo plano para gerenciar a saúde do inimigo, diminuir que a saúde em resposta a uma colisão com uma bala, e, finalmente, para exibir uma explosão quando o inimigo morreu.
A explosão, assim como qualquer outro duende animado, é definido nos arquivos XML.
Tal como as balas que existe como um modelo, mas não é adicionado a nenhum grupo, de modo que não é carregado, quando o nível está carregado. Por causa da explosão não participará na detecção de colisão ou ser movido ao redor da tela, há pouca necessidade de simulá-lo com o motor de física Box2D. Assim, o componente espacial será uma SimpleSpatialComponent, ao contrário do Box2DSpatialComponent utilizado para a inimigos, jogador e balas. Para além de que os mesmos componentes renderização e animação são adicionados à entidade explosão.
Código
Além disso é adicionado um novo componente chamado DestroyAfterCountdownComponent. A finalidade deste componente é destruir uma entidade após um certo período de tempo. Neste caso, queremos destruir a entidade explosão uma vez que a animação foi concluída.
Código
Botão vem com um componente útil chamado HealthComponent que pode ser usado para manter a saúde de uma entidade, causa danificar a uma entidade através da diminuição da saúde, e destruir a entidade uma vez toda a sua saúde está desaparecido.
Este componente é adicionado ao modelo inimigo, e nós definir a saúde inicial do inimigo para 1 (o padrão é 100).
Código
Quando a saúde gerido pelo HealthComponent é reduzido para zero a entidade é destruído por padrão, mas também envia um evento para permitir que outros componentes saber que a entidade tenha morrido. O DeathHandlerComponent é usado para assistir a este evento e adicionar a uma nova instância da entidade explosão.
Código
O DamageOnContactConponent, que foi introduzido no último tutorial, foi modificada para encontrar o componente de saúde da entidade que está colidiu com e chamar sua função de danos, o que reduzirá a saúde da outra entidade e, eventualmente destruí-la. O CollisionEvent que é passado para a função de ouvinte de evento de colisão possui referências a duas Box2DSpatialComponent chamado collidee e colisor. Você não pode a