Control a car (MovieClip) with arrow keys for games, ActionScript 3.0













ActionScript Code:





/**************************************

Developed by

Anil kumar N D

anilkumarnd@gmail.com

http://flash-workshop.blogspot.com/



Flash CS4 professional

ActionScript 3.0

29 April,2010


**************************************/




package {

import flash.display.MovieClip;

import flash.events.KeyboardEvent;

import flash.events.Event;




public class car extends MovieClip {




/***********************************************************************************************

Default constructor

************************************************************************************************/

public function car():void {

stage.frameRate = 30;

mc_car.left = false;

mc_car.up = false;

mc_car.right = false;

mc_car.down = false;

mc_car.xFactor = 0;

mc_car.yFactor = 0;

mc_car.speed = 3;

stage.addEventListener(KeyboardEvent.KEY_DOWN,fn_keyDownHandler);

stage.addEventListener(KeyboardEvent.KEY_UP,fn_keyUpHandler);

stage.addEventListener(Event.ENTER_FRAME,fn_enterFrameHandler);

}




/***********************************************************************************************



************************************************************************************************/

private function fn_enterFrameHandler(IN_Event:Event):void {


switch(mc_car.up){

case(true):

mc_car.y -= mc_car.yFactor;

mc_car.x -= mc_car.xFactor;

switch(mc_car.right){

case(true):

mc_car.rotation += mc_car.speed/2;

break;

}

switch(mc_car.left){

case(true):

mc_car.rotation -= mc_car.speed/2;

break;

}

break;

}

switch(mc_car.down){

case(true):

mc_car.y += mc_car.yFactor;

mc_car.x += mc_car.xFactor;

switch(mc_car.right){

case(true):

mc_car.rotation -= mc_car.speed/2;

break;

}

switch(mc_car.left){

case(true):

mc_car.rotation += mc_car.speed/2;

break;

}

break;

}

mc_car.yFactor = (-(((Math.abs(mc_car.rotation))/(90/mc_car.speed))-mc_car.speed));

mc_car.xFactor = (((Math.abs(mc_car.rotation-90))/(90/mc_car.speed))-(mc_car.speed));

switch(true){

case (mc_car.xFactor > mc_car.speed):

mc_car.xFactor = mc_car.speed - (mc_car.xFactor -mc_car.speed );

break;

}

}




/***********************************************************************************************



************************************************************************************************/

private function fn_keyDownHandler(IN_Event:KeyboardEvent):void {

switch(IN_Event.keyCode){

case 37:

mc_car.left = true;

break;

case 38:

mc_car.up = true;

break;

case 39:

mc_car.right = true;

break;

case 40:

mc_car.down = true;

break;

}


}




/***********************************************************************************************



************************************************************************************************/

private function fn_keyUpHandler(IN_Event:KeyboardEvent):void {

switch(IN_Event.keyCode){

case 37:

mc_car.left = false;

break;

case 38:

mc_car.up = false;

break;

case 39:

mc_car.right = false;

break;

case 40:

mc_car.down = false;

break;

}

}



}

}



Comments

Marvil said…
How can we use car.Xfactor or Yfactor or car.speed...
Unknown said…
Thanks for the scrip and I am looking forward to try it out.
Flash Web Developer
Unknown said…
That's really cool script and I really enjoyed my stay at your Blog.
Flash development India

Popular posts from this blog

AS3 - Access objects from external SWF files

Flash CS3 - XML Guestbook (AS3)

Flash CS4 - 3D Rotating Menu