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>
Trykknap Tutorial Series - Sporing amp; amp; Jumping
- Introduktion til Windows
- Sybase Opret Tabel SQL-sætning
- Javascript Funktion Basics
- Få at vide Irrlicht 3D-motor - Collision Detection
- Realiseringen af et 3D-spil med Ogre - Tilføjelse lydeffekter
- Hjælp, min Script ISN & amp; # 039;! T Working
- Supplerende emner i en Website Design Course
- Grundlæggende om C Identifier Scope
- J2ME Moving List Elements op /ned !!
- Indeks Til Database Tables