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

Fazendo um clone de Space Invaders com PushButton - O player

r o jogador que se move horizontalmente

 screenWidth var público:. int = 480; velocidade var público: Number = 200; sideBuffer var público: int = 32; 

Como regra geral, o construtor de um componente não deve incluir qualquer código. Quando um novo componente é criado, eo construtor é chamado, não está ligado a uma entidade. Embora eles não são usados ​​aqui, a OnAdd e funções OnRemove são, essencialmente, o equivalente ao construtor e destruidor (para os programadores C ++ lá fora)

 PlayerControllerComponent função pública () {super (.

); }

A função onTick é onde nós atualizamos o jogador. Em primeiro lugar, obter uma referência para a velocidade e posição entidades. Esses valores são mantidos pelo componente espacial e ligada na definição de modelo XML, mas não faz diferença para o PlayerControllerComponent onde estes valores vêm. Este tipo de acoplamento é um dos aspectos do sistema de criação componente botão. O PlayerControllerComponent sabe como modificar a posição e velocidade de uma entidade, mas não se importa como a posição e velocidade são utilizados

 função override público onTick (Tickrate: Number):.

Void {super.onTick (Tickrate ); velocidade var: Ponto = owner.getProperty (velocityReference); posição var: Ponto = owner.getProperty (positionReference);

Há sempre a possibilidade de que as referências de propriedade não foram definidas, caso em que as variáveis ​​de posição e de velocidade serão nulos. Mesmo que o flash player liberação falha silenciosamente com esses tipos de erros, podemos muito bem lidar com esta possibilidade graciosamente aqui por não avançar mais.


 if (velocidade == posição nula || == null) return ; 

Primeiro queremos obrigado a posição do jogador para que ele não irá se mover para fora da borda da tela

 if (position.x> screenWidth - sideBuffer) position.x = screenWidth - sideBuffer.; else if (position.x 

Em seguida, precisamos atualizar a velocidade dependendo de qual tecla de seta é pressionado, se houver

 if (InputManager.isKeyDown (InputKey.LEFT)) {velocity.x =. - velocidade;} else if (InputManager.isKeyDown (InputKey.RIGHT)) {velocity.x = velocidade;} else {velocity.x = 0;.

}

Em seguida, sincronizar essas mudanças de volta à entidade-mãe

< pre> owner.setProperty (positionReference, posição); owner.setProperty (velocityReference, velocidade);}}

References.as

Enquanto PushButton irá lidar com a criação de componentes das cord

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