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>
PushButton Tutorial Series - Tracking & amp; amp; Jumping
- Passerende Verwijzingen in Php
- Detecteren Kleuren in Images
- Perl Verwijzing naar een Scalar
- Programmering: batch-bestanden.. Aansluiting Checker
- Het maken van een Space Invaders kloon met PushButton - Enemy Bullets
- Het creëren van een Flash-platform game met flixel en Flex - Powerup Blocks
- Php Reference
- Het schrijven van Windows Mobile Application Met behulp van Google Apis
- Software Development Kit (SDK)
- Logica en PHP Conditions