jogar o demo
BAIXAR O CÓDIGO FONTE
Voltar ao Índice TUTORIAL
No último tutorial nós adicionamos um componente para permitir que entidades que ser destruído em colisão. Este contornou a HealthComponent utilizado pelas entidades inimigos, mas agora temos um círculo completo e adicionar um HealthComponent ao jogador para que ele possa ser danificado por balas do inimigo. Aqui nós adicionar o HealthComponent, e especificar que o jogo tem uma saúde inicial de 5.
Código
Para o jogador a ser filmado precisamos criar um novo modelo de entidade.
Isso é quase uma cópia exata do modelo EnemyBullet, exceto os tipo tipos entidade e colisão são alteradas para identificá-la como uma bala disparado por um inimigo e colidindo com o jogador.
Código
EnemyControllerComponent .as
Assim como o PlayerControllerComponent, o que cria uma nova entidade PlayerBullet quando a barra de espaço foi pressionada, o EnemyControllerComponent criará aleatoriamente uma nova entidade EnemyBullet.
A variável timeToNextShot, usado para controle a quantidade de tempo entre cada possível disparo de uma bala, é contado para baixo a 0.
função override público onTick (Tickrate: Number): void {//... timeToNextShot - = Tickrate; timeToNextShot = timeToNextShotUma vez timeToNextShot chegar a 0 o inimigo vai ter a chance de disparar uma bala. O timeToNextShot é redefinido para iniciar a contagem regressiva novamente
if (timeToNextShot == 0) {timeToNextShot = timeBetweenShots;.
Queremos que esses tiros para ser aleatória, por isso usamos a variável chanceOfShot com a função aleatória para determinar se um tiro deve ser tomado. A seguinte declaração se tem um 1 em chanceOfShot chance de ser verdade.
if (Math.round (Math.random () * chanceOfShot) == 0) {Se a instrução if ser verdade um novo instância do modelo EnemyBullet é criado, posicionado e definir a velocidade
var bala:. IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); if (bala! = null) {var espacial: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) como Box2DSpatialComponent; spatial.position = new Point (position.x, position.y); spatial.linearVelocity = new Point (0, bulletSpeed); }}}}
Temos que fazer uma pequena alteração ao PlayerControllerComponent para parar as balas inimigas bater o jogador fora da tela. Quando dois objetos colidem em um sistema de
Fazendo um clone de Space Invaders com PushButton - Main Menu
- Botão de Notificação Messages
- C Sintaxe Básica
- J2ME Movendo Lista Elements para cima /para baixo !!
- Aplicativo de console em Reflexão em C # 1.
1 e 2.0 (Dot Net)
- C-Sharp
- Data e hora no C ++
- Função Diretório Php Basics
- Basics C ++ classe String
- Basics mensagem para a Classe Janela Procedimento
- Como fazer jogos para plataformas móveis