*   >> Lese Utdanning Artikler >> science >> programming

Trykknapp Tutorial Series - Oppdatering Animation

SE DEMO

laste ned kildekoden

TILBAKE TIL TUTORIAL INDEX

I den siste opplæringen opprettet vi en AnimationController å automatisk oppdatere bildet som vises ved SpriteRenderComponent, noe som resulterer i en animert bilde. Nå vil vi utvide KeyboardController komponent for å tillate det å signalisere AnimationController å endre gjeldende animasjon, som vil tillate oss å vise forskjellige animasjoner basert på tastaturet input, som en rennende animasjon når en piltast trykkes.


Den AnimationController krever to ting for å kunne bytte animasjoner på etterspørselen. Den første er navnet på en hendelse som vil bli sendt ut når animasjonen bør endres. Dette er satt gjennom changeAnimationEvent eiendom

EntityFactory.as

 Animation.changeAnimationEvent = "PlayerAnimation."; 

Den andre er en referanse til en eiendom som beskriver navnet på animasjonen som skal spille. Dette er en get funksjon som vi vil legge til KeyboardController komponent

 Animation.currentAnimationReference = new PropertyReference ("@ Input.currentAnimation.

");

Hva skjer nå er at når animasjonen blir vist behov for å bli endret en hendelse er sendt av foretaket, i dette tilfellet med navnet "PlayerAnimation". Det er ingen data knyttet til denne hendelsen. Den AnimationController vil bruke den utløsende av hendelsen som et signal for å be om animasjonen som skal vises gjennom eiendommen henvisning tilordnet changeAnimationEvent eiendom

forsendelse "PlayerAnimation" hendelse og gi et navn på den ønskede animasjonen er jobben av KeyboardController.

Den currentAnimation funksjon gir deg mulighet for AnimationController å lese navnet på den aktuelle animasjon

KeyboardController.as

 offentlig funksjon får currentAnimation (). String {return animasjon;} 

onTick funksjon er oppdatert for å ta opp den siste retningen av spilleren (med vendt variable), om det er i bevegelse eller ikke (med tomgangs variable), og til å sende en hendelse når animasjonen bør endres.

 offentlige styringsfunksjon onTick (tickRate: Number): void {var posisjoner: Point = owner.getProperty (PositionReference); if (InputManager.

isKeyDown (InputKey.RIGHT)) {if (vendt || tomgang!) {vendt = true; idle = false; animasjon = "RunRight"; owner.eventDispatcher.dispatchEvent (ny hendelse (AnimationEventName)); } XMovement + = Speed ​​* tickRate; while (xMovement> = 1) {position.x + = 1; xMovement - = 1; }} Else if (InputManager.isKeyDown (InputKey.LEFT)) {if (vendt || tomgang) {vendt = false; idle = false; animasjon = "RunLeft"; owner.eventDispatcher.

dispatchEvent (ny hendelse (AnimationEventName)); } XMovement - = Speed ​​* tickRate; while (xMovement else if (idle) {idle = true; animasjon = vendt "IdleRight": "IdleLeft"; owner.eventDispatcher.dispatchEvent (ny hendelse (AnimationEventName));}! if (InputManager.isKeyDown (InputKey.DOWN) ) {yMovement + = Speed ​​* tickRate; while (yMovement>

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.