*   >> Læs Uddannelse artikler >> science >> programming

Trykknap Tutorial Series - Opdatering Animation

SE DEMO

hente kildekoden

TILBAGE TIL tutorial INDEX

I den sidste tutorial skabte vi en AnimationController til automatisk at opdatere billedet, der vises af SpriteRenderComponent, hvilket resulterer i en animeret billede. Nu vil vi udvide KeyboardController komponent at gøre det muligt at signalere AnimationController at ændre den nuværende animation, som vil give os mulighed for at vise forskellige animationer baseret på tastaturet input, ligesom en kørende animation, når der trykkes på en piletast.


Den AnimationController kræver to ting at være i stand til at bytte animationer på efterspørgslen. Den første er navnet på en begivenhed, der vil blive afsendt, når animationen skal ændres. Dette er sat gennem changeAnimationEvent ejendom

EntityFactory.as

 Animation.changeAnimationEvent = "PlayerAnimation." 

Den anden er en henvisning til en egenskab, der beskriver navnet på den animation, der skal afspilles. Dette er en get funktion, som vi vil føje til KeyboardController komponent

 Animation.currentAnimationReference = ny PropertyReference ("@ Input.

currentAnimation.");

Hvad sker der nu, er, at når animationen bliver viste behov skal ændres en begivenhed er afsendt af virksomheden, i dette tilfælde med navnet "PlayerAnimation". Der er ingen data i forbindelse med denne begivenhed:. Den AnimationController vil anvende udløsning af begivenheden som et signal til at anmode om animation, der skal vises gennem ejendommen henvisningen tildelt changeAnimationEvent ejendom

afsender "PlayerAnimation" begivenhed og giver en navnet på den ønskede animation er en opgave for KeyboardController.

Den currentAnimation funktion giver en måde for AnimationController at læse navnet på den aktuelle animation

KeyboardController.as

 offentlig funktion få currentAnimation ():. String {tilbagevenden animation;} 

onTick funktion er opdateret til at registrere den sidste retning af afspilleren (med vender variabel), uanset om det er i bevægelse eller ej (med inaktiv variabel), og til at sende en begivenhed, når animationen skal skiftes.

 offentlige override funktion onTick (Tickrate: Number): void {var position: Punkt = owner.

getProperty (PositionReference); hvis (InputManager.isKeyDown (InputKey.RIGHT)) {if (vender || tomgang!) {vender = true; tomgang = false; animation = "RunRight"; owner.eventDispatcher.dispatchEvent (ny begivenhed (AnimationEventName)); } XMovement + = Hastighed * Tickrate; mens (xMovement> = 1) {position.x + = 1; xMovement - = 1; }} Else if (InputManager.isKeyDown (InputKey.LEFT)) {if (vender || tomgang) {vender = false; tomgang = false; animation = "RunLeft"; owner.eventDispatcher.

dispatchEvent (ny begivenhed (AnimationEventName)); } XMovement - = Hastighed * Tickrate; mens (xMovement ellers hvis (tomgang) {tomgang = true; animation = står "IdleRight":? "IdleLeft" owner.eventDispatcher.dispatchEvent (ny begivenhed (AnimationEventName)),}! if (InputManager.isKeyDown (InputKey.DOWN) ) {yMovement + = Hastighed * Tickrate, mens (yMovement>

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.