*   >> Lezen Onderwijs artikelen >> science >> programming

PushButton Tutorial Series - Updaten Animation

Bekijk de DEMO

Download de broncode

Terug naar de tutorial INDEX

In de laatste les creëerden we een AnimationController automatisch worden bijgewerkt de afbeelding getoond door de SpriteRenderComponent, resulterend in een geanimeerde afbeelding. Nu zullen we de keyboardcontroller component

> De AnimationController vereist twee dingen in staat zijn om animaties te wisselen op de vraag. De eerste is de naam van een gebeurtenis die wordt verzonden wanneer de animatie moet worden gewijzigd. Dit wordt ingesteld door het pand changeAnimationEvent

EntityFactory.as

 Animation.changeAnimationEvent = "PlayerAnimation."; 

De tweede is een verwijzing naar een eigenschap die de naam van de animatie die zou moeten spelen beschrijft. Dit is een get functie die we zullen toevoegen aan de keyboardcontroller component

 Animation.

currentAnimationReference = new PropertyReference ("@ Input.currentAnimation.");

Wat nu gebeurt is dat wanneer de animatie wordt getoond hoeft te veranderen een gebeurtenis wordt verzonden door de entiteit, in dit geval met de naam "PlayerAnimation". Er zijn geen gegevens in verband met dit evenement.

De AnimationController zal gebruik maken van de activering van het evenement als een signaal naar de animatie die moet worden weergegeven door middel van de verwijzing pand toegewezen aan de eigenschap changeAnimationEvent vragen

Dispatching de "PlayerAnimation" gebeurtenis en het verstrekken van een de naam van de gewenste animatie is de taak van de keyboardcontroller. De currentAnimation functie biedt een manier voor het AnimationController om de naam van de huidige animatie te lezen

KeyboardController.as

 openbare functie krijgen currentAnimation ():.

String {return animatie;}

onTick functie wordt aangepast aan de laatste richting van de speler (met gerichte variabele) opnemen, of het beweegt of niet (met inactieve variabel) en een gebeurtenis verzenden wanneer de animatie moet worden veranderd.

 public override functie onTick (tickrate: Number): void {var positie: Point = owner.getProperty (PositionReference); if (InputManager.isKeyDown (InputKey.RIGHT)) {if (tegenover || stationair!) {geconfronteerd = true; inactief = false; animatie = "RunRight"; owner.eventDispatcher.

dispatchEvent (nieuwe Event (AnimationEventName)); } XMovement + = Speed ​​* tickrate; while (xMovement> = 1) {position.x + = 1; xMovement - = 1; }} Else if (InputManager.isKeyDown (InputKey.LEFT)) {if (tegenover || idle) {geconfronteerd = false; inactief = false; animatie = "RunLeft"; owner.eventDispatcher.dispatchEvent (nieuwe Event (AnimationEventName)); } XMovement - = Speed ​​* tickrate; while (xMovement anders als (inactieve) {inactief = true; animatie = geconfronteerd "IdleRight": "IdleLeft"; owner.eventDispatcher.dispatchEvent (nieuwe Event (AnimationEventName));} if (InputManager.

isKeyDown (InputKey.DOWN) ) {yMovement + = Speed ​​* tickrate, terwijl (yMovement>

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.