Flash objecten laten bewegen via je keyboard
blokje door vinTage op 17-09-2006
In deze tut zal ik jullie uitleggen hoe je movieclips kan bewegen door middel van je keyboard.
Om deze tut gemakkelijk door te lopen is het handig als je al wel weet hoe je movie clips maakt, en er actionscript aan kan toevoegen.

Er zijn 2 manieren om je figuurtje te laten bewegen, onderstaande twee voorbeeldjes tonen de verschillende manieren van bewegen.

Recht toe recht aan

Download de gratis flash plugin
Normaal zou hier dit voorbeeld moeten staan.


Zoals een auto

Download de gratis flash plugin
Normaal zou hier dit voorbeeld moeten staan.



Het figuur maken wat je wilt laten bewegen met flash

We beginnen dus met met het aanmaken van een movieclip die we willen laten bewegen.
Let er op dat je figuur naar "boven" laat kijken, anders kloppen de action script codes niet die ik verder gebruik in deze tutorial.
Een ander ding waar je rekening mee moet houden is het registratie punt van je figuur.
Dit registratie punt is het punt wat je figuur als draaipunt gebruikt.
Bij mijn voorbeelden ziet dat er zo uit.
registratiepunt

Zodra je een movieclip hebt gemaakt keren we terug naar de main scene en slepen we ons figuur uit de library op de main scene.


ActionScript toevoegen die ons figuur laat bewegen en ervoor zorgt dat het figuur niet uit beeld loopt

Selecteer op de main scene je figuur en geef het de instancenaam rups.
Klik nu in de tijdlijn op een keyFrame en open het actionscript panel (F9), copieer en plak het eerste script als je de rechtaan manier wilt gebruiken of het tweede script als je de auto manier wilt gebruiken.


De recht toe recht aan manier van bewegen:
actionscript code

//Zo hard kan de rups lopen
snelheid = 5;

onEnterFrame = function () {
  //Dit stukje zorgt ervoor dat de rups niet uit beeld loopt
  if (rups._y<0) {
    rups._y = 0;
  } else if (rups._y>Stage.height) {
    rups._y = Stage.height;
  }
  if (rups._x<0) {
    rups._x = 0;
  } else if (rups._x>Stage.width) {
    rups._x = Stage.width;
  }
 
  //onderstaande verzorgt het keyboard gedeelte
  if (Key.isDown(Key.UP)) {
    rups._rotation = 0;
    rups._y -= snelheid;
  }
  if (Key.isDown(Key.DOWN)) {
    rups._rotation = 180;
    rups._y += snelheid;
  }
  if (Key.isDown(Key.RIGHT)) {
    rups._rotation = 90;
    rups._x += snelheid;
  }
  if (Key.isDown(Key.LEFT)) {
    rups._rotation = 270;
    rups._x -= snelheid;
  }
};

 


De auto manier van bewegen:
actionscript code

//zo hard loopt de rups
snelheid = 5;

onEnterFrame = function () {
  //Dit stukje zorgt ervoor dat de rups niet uit beeld loopt
  if (rups._y<0) {
    rups._y = 0;
  } else if (rups._y>Stage.height) {
    rups._y = Stage.height;
  }
  if (rups._x<0) {
    rups._x = 0;
  } else if (rups._x>Stage.width) {
    rups._x = Stage.width;
  }
 
  //onderstaande verzorgt het keyboard gedeelte     
  if (Key.isDown(Key.RIGHT)) {
    rups._rotation += 10;
  }
  if (Key.isDown(Key.LEFT)) {
    rups._rotation -= 10;
  }
  if (Key.isDown(Key.UP)) {
    rups._y -= snelheid*Math.cos(rups._rotation*(Math.PI/180));
    rups._x += snelheid*Math.sin(rups._rotation*(Math.PI/180));
  }
  if (Key.isDown(Key.DOWN)) {
    rups._y += snelheid*Math.cos(rups._rotation*(Math.PI/180));
    rups._x -= snelheid*Math.sin(rups._rotation*(Math.PI/180));
  }
};
 




snelheid veranderen met de spatiebalk

Nu hebben we dan wel een rups die kan lopen, maar stel dat we een turbo toets willen inbouwen, dus dat ons figuurtje sneller gaat bewegen.

Dit kunnen we doen een klein beetje code weg te halen en toe te voegen in de onEnterFrame functie, namelijk:
actionscript code

//Zo hard kan de rups lopen
snelheid = 5;
//de 2 regels hierboven mag je weghalen


//en deze regels bijzetten in de onEnterFrame functie
if (Key.isDown(Key.SPACE)) {
    snelheid = 8;
  }else{
    snelheid = 5;
  }
 




Uitleg van de ActionScripts

onEnterFrame = function{//doe iets }Alles tussen de accolades word continue herhaalt.
We beginnen het script met een paar regels code die ervoor zorgt dat we ons figuurtje niet uit beeld kunnen laten lopen.
rups._x en rups._y zijn de coordinaten van het registratie punt van ons figuurtje.

De Stage.width en Stage.height die je terug vind in de code, zijn de breedte en hoogte maten van de swf.

if (Key.isDown(Key.NAAM)) { //doe iets }Er wordt nonstop gekeken welke knop van je keybord er is ingedrukt, als een bepaalde knop is ingedrukt worden de actions uitgevoerd die tussen de accolades staan. (zie hieronder)

rups._rotation = getal doet precies wat je al verwacht en draait ons figuur het aantal graden wat je meegeeft.

rups._x en rups._y = snelheid Dit zorgt ervoor dat het figuur het aantal pixels opschuift per frame cyclus.


Bij de "auto" manier gaat het net iets anders, op de auto manier, gebruik je de pijltjes links en rechts om te draaien en de up en down om vooruit/achteruit te gaan.


Hopelijk heb je iets aan deze tutorial gehad en kan je nu naar hartelust race spellen, adventure games, rpg games etc maken met flash.
Succes en happy flashing.
Download FLA bestanden.



Share |



Stem op deze tutorial


Reacties



Je bent niet ingelogged, je kan geen commentaar geven, of commentaren lezen over deze tutorial.