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

PushButton Tutorial Series - Atualizando Animation

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>

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