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>
Trykknapp Tutorial Series - Tracking & amp; amp; Jumping
- Ins og Outs av Custom Web Applications
- På vei til læring Computer Programming I Nano
- Hvorfor Learning Java er viktig
- Iphone Tegning over et bilde Part 1
- ActivePerl Sammenligning og regning Operators
- Fast Drifts Image Gallery for New browsers
- Java Tutorials - Leksjon 2: Primitive datatyper og variabler (Integer, double, f…
- C ++ Basic Input og output
- Pakker og Reflexive Relationships
- Manipulere redigeringskontroll Text