Code in frame 1 layer 1
//threeCars
//has three different cars working simultaneously
init();
function init(){
//initialization
//direction constants
_root.NORTH = 0;
_root.NORTHWEST = 1;
_root.WEST = 2;
_root.SOUTHWEST = 3;
_root.SOUTH = 4;
_root.SOUTHWEST = 5;
_root.WEST = 6;
_root.NORTHWEST = 7;
//randomly position cars
reset(car1);
reset(car2);
reset(car3);
//set monster initial values
monster.dx = 0;
monster.dy = 0;
monster.speed = 0;
monster.dir = _root.NORTH;
} // end init
monster.onEnterFrame = function(){
checkKeys();
turn(monster);
move(monster);
//move the cars, too
move(car1);
move(car2);
move(car3);
} // end monster enterFrame
function checkKeys(){
//check keyboard to move monster
if (Key.isDown(Key.UP)){
trace ("up");
monster.speed++;
if (monster.speed > 8){
monster.speed = 8;
} // end if
} // end if
if (Key.isDown(Key.DOWN)){
monster.speed--;
if (monster.speed < -3){
monster.speed = -3;
} // end if
} // end if
if (Key.isDown(Key.RIGHT)){
monster.dir++;
if (monster.dir > 7){
monster.dir = 0;
} // end if
} // end if
if (Key.isDown(Key.LEFT)){
monster.dir--;
if (monster.dir < 0){
monster.dir = 7;
} // end if
} // end if
} // end checkKeys
function reset(sprite){
//given a car sprite, resets its parameters
sprite._x = Math.random() * Stage.width;
sprite._y = Math.random() * Stage.height;
sprite.dir = Math.random() * 8;
sprite.dir = Math.floor(sprite.dir);
sprite._rotation = sprite.dir * 45;
sprite.speed = Math.random() * 10;
turn(sprite);
} // end reset
function move(sprite){
//moves any sprite, wrapping around boundaries
//move
sprite._x += sprite.dx;
sprite._y += sprite.dy;
//rotate
sprite._rotation = sprite.dir * 45;
//check boundaries - wrap all directions
if (sprite._x > Stage.width){
sprite._x = 0;
} // end if
if (sprite._x < 0){
sprite._x = Stage.width;
} // end if
if (sprite._y > Stage.height){
sprite._y = 0;
} // end if
if (sprite._y < 0){
sprite._y = Stage.height;
} // end if
} // end move
function turn(sprite){
//given a sprite with a dir and speed, calculates dx and dy values
switch (sprite.dir){
case 0:
sprite.dx = 0 * sprite.speed;
sprite.dy = -1 * sprite.speed;
break;
case 1:
sprite.dx = .7 * sprite.speed;
sprite.dy = -.7 * sprite.speed;
break;
case 2:
sprite.dx = 1 * sprite.speed;
sprite.dy = 0 * sprite.speed;
break;
case 3:
sprite.dx = .7 * sprite.speed;
sprite.dy = .7 * sprite.speed;
break;
case 4:
sprite.dx = 0 * sprite.speed;
sprite.dy = 1 * sprite.speed;
break;
case 5:
sprite.dx = -.7 * sprite.speed;
sprite.dy = .7 * sprite.speed;
break;
case 6:
sprite.dx = -1 * sprite.speed;
sprite.dy = 0 * sprite.speed;
break;
case 7:
sprite.dx = -.7 * sprite.speed;
sprite.dy = -.7 * sprite.speed;
break;
default:
trace ("Something went wrong here...");
break;
} // end switch
} // end turn