Veja a apresentação
BAIXAR O CÓDIGO FONTE
Voltar ao Índice TUTORIAL
No último tutorial nós criamos um AnimationController para atualizar automaticamente a imagem mostrada pelo SpriteRenderComponent, resultando em uma imagem animada. Agora vamos estender o componente KeyboardController para permitir que ele para sinalizar o AnimationController para mudar a animação atual, o que nos permitirá mostrar diferentes animações com base na entrada de teclado, como uma animação em execução quando uma tecla é pressionada.
O AnimationController requer duas coisas para ser capaz de trocar animações sob demanda. O primeiro é o nome de um evento que será enviado quando a animação deve ser alterado. Isso é definido através da propriedade changeAnimationEvent
EntityFactory.as
Animation.changeAnimationEvent = "PlayerAnimation.";O segundo é uma referência a uma propriedade que descreve o nome da animação que deveria estar jogando. Esta é uma função get que vamos adicionar ao componente KeyboardController
Animation.currentAnimationReference = new PropertyReference ("@ Input.currentAnimation.");
O que acontece agora é que as necessidades quando a animação sendo exibidas para ser mudado um evento é enviado pela entidade, neste caso, com o nome "PlayerAnimation". Não há dados associado a este evento:. A AnimationController usará o disparo do evento como um sinal para solicitar a animação que deve ser exibido através da referência de propriedade atribuído à propriedade changeAnimationEvent
despachar o "PlayerAnimation" evento e proporcionando um o nome da animação desejada é o trabalho do KeyboardController.
A função currentAnimation fornece um caminho para a AnimationController para ler o nome da animação atual
KeyboardController.as
função pública obter currentAnimation ():. Corda {animação retorno;}A onTick função é atualizado para gravar o último direção do jogador (com a variável de frente), se ele está se movendo ou não (com a variável de repouso), e para despachar um evento quando a animação deve ser alterado.
função override público onTick (Tickrate: Number): void {var posição: Ponto = owner.getProperty (PositionReference); if (InputManager.isKeyDown (InputKey.RIGHT)) {if (de frente para a marcha lenta ||!) {enfrentando = true; ocioso = false; animação = "RunRight"; owner.eventDispatcher.dispatchEvent (new Event (AnimationEventName)); } XMovement + = velocidade * Tickrate; while (xMovement> = 1) {position.x + = 1; xMovement - = 1; }} Else if (InputManager.isKeyDown (InputKey.LEFT)) {if (de frente para || ocioso) {enfrentando = false; ocioso = false; animação = "RunLeft"; owner.eventDispatcher.
dispatchEvent (new Event (AnimationEventName)); } XMovement - = velocidade * Tickrate; while (xMovement else if (idle) {ocioso = true; animação = enfrentando "IdleRight?": "IdleLeft"; owner.eventDispatcher.dispatchEvent (new Event (AnimationEventName));} if (! InputManager.isKeyDown (InputKey.DOWN) ) {yMovement + = velocidade * Tickrate; while (yMovement>
PushButton Tutorial Series - Rastreamento & amp; amp; Jumping
- Janelas Scroll Bar
- Programador por Heart
- PushButton Tutorial Series - Rastreamento & amp; amp; Jumping
- Processo de Desenvolvimento Agile
- C ++ Cadeia Operators
- Javascript condicional Statements
- Como ensinar ciência da computação Basics
- Várias maneiras comuns que vírus se espalham
- PHP e MySQL
- Gestão de dados (RDBMS)