Snelle tip eenvoudige AS3-personagebeweging met KeyObject.as

In deze tutorial zal ik een klasse introduceren van Senocular.com waarmee je eenvoudig gametekens kunt verplaatsen met minimale code.


Eindresultaat voorbeeld

In de SWF zie je een ruimteschip; gebruik je linker-, rechter-, omhoog- en omlaag pijltoetsen om het te verplaatsen.


Stap 1: Uitleg van KeyObject.as

Toen ActionScript 3.0 uitkwam, verloren we de functionaliteit van de Key.isDown () -methode van AS2. Senocular heeft een geweldige kleine klasse gecodeerd waarmee we deze functionaliteit binnen ActionScript 3 kunnen emuleren en dat is waar we in de zelfstudie naar zullen kijken.


Stap 2: Het project opzetten

Ga naar Bestand> Nieuw en maak een nieuw Actionscript 3.0-document met de volgende eigenschappen:

  • Grootte: 550 * 400
  • Achtergrondkleur: wit
  • FPS: 24

Bewaar dit bestand als "KeyObject.fla"


Stap 3: KeyObject.as downloaden

Voordat we onze applicatie kunnen coderen, moeten we het bestand "KeyObject.as" downloaden, dus ga naar Senocular.com. Klik in het Flash-menu op Actionscript. Als u daar eenmaal bent, wilt u doorgaan naar 'KeyObject.as' en het downloaden. Ga er heen door naar te gaan Actionscript 3.0> com> senocular> utils.

U kunt met de rechtermuisknop op de downloadkoppeling klikken en deze opslaan als "KeyObject.as".

Zodra u dit hebt gedaan, moet u com.senocular.utils verwijderen direct na de declaratie van het pakket in het bestand, aangezien we het pad com.senocular class niet gebruiken.

Verander dit:

 pakket com.senocular.utils import flash.display.Stage; import flash.events.KeyboardEvent; // Rest van klasse

Hiernaar:

 pakket import flash.display.Stage; import flash.events.KeyboardEvent; // Rest van klasse

Stap 4: De grafische speler importeren

In de downloadbestanden is een ruimteschipafbeelding genoemd player.png. In Flash importeer je dit naar het werkgebied door naar Bestand> Importeren> Importeren naar werkgebied. Klik er met de rechtermuisknop op en kies "Converteren naar symbool", geef het de symboolnaam "speler" en zorg ervoor dat het registratiepunt links bovenaan staat. Geef het nu ook de instantienaam "player".


Stap 5: De hoofdklasse instellen

Ga naar Bestand> Nieuw en kies ActionScript-bestand.

Sla dit op als Main.as en stel het in als uw documentklasse binnen "KeyObject.fla".

Voeg vervolgens de volgende code toe aan "Main.as":

 pakket import flash.display.Sprite import flash.events.Event; importeer KeyObject; public class Hoofd breidt private var key: KeyObject; public function Main () addEventListener (Event.ADDED_TO_STAGE, setupKeyObject);  functie setupKeyObject (e: Event) key = new KeyObject (stage); stage.addEventListener (Event.ENTER_FRAME, movePlayer);  functie movePlayer (e: Event) if (key.isDown (key.LEFT)) player.x - = 5;  if (key.isDown (key.RIGHT)) player.x + = 5;  if (key.isDown (key.DOWN)) player.y + = 5;  if (key.isDown (key.UP)) player.y - = 5;  if (player.y<0) player.y =0;  if(player .y > (stage.stageHeight - player.height)) player.y = stage.stageHeight - player.height;  if (player.x<0) player.x = 0;  if(player.x > (stage.stageWidth - player.width)) player.x = stage.stageWidth - player.width; 

Hier zetten we ons pakket op en importeren we de klassen die we gaan gebruiken. Vervolgens hebben we de sleutel variabel als type KeyObject, en binnen onze Hoofd constructor we voegen een toe ADDED_TO_STAGE Evenement Luisteraar. Dit wordt opgeroepen wanneer de film volledig is geladen en het podium gereed is.

Binnen in de setupKeyObject functie, stellen we de sleutel variabele om een ​​nieuwe instantie van de te zijn KeyObject klasse en voeg een toe ENTER_FRAME Event Luisteraar naar het podium.

Binnen de beweeg speler functie controleren we met welke toets wordt ingedrukt Key.isDown () en verplaats onze speler dienovereenkomstig.

Ten slotte controleren we of het object buiten de grenzen van het podium is gekomen en als het dat is, plaatsen we het terug in het werkgebied.


Conclusie

Met Senocular's KeyObject-klasse is het doodeenvoudig om je gamekarakters te verplaatsen! Ik hoop dat deze tutorial heeft geholpen; bedankt voor het lezen.