damo_j
03-19-2009, 04:17 PM
hi, im pretty new to flash. im making a racing game in as3. Ive got most of it working now, but some some reason the car wont turn well. i wanrt a shaper turing circle, ive played about with the numbers in the code but noughting seems to work.
the car did turn fine untill i made it go faster with the, var a:Number = ;
is was set at 0.9 but i changed it to 6 so im gussing theres somthing in my code that needs changing but i cant work it out.
oh and another thing the car hero 2 i set new buttons for on the keyboard as its a 2 player game, but it wont move so not sure what ive done wrong there.
also i need a health bar that when the cars get hit or crash they lose health, ive created a health bar but it wont do what i want it to.
heres my full code,
//import some important flash libraries.
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
//hero
//initializes variables.
var a:Number = 6;
var vx:Number = 4;
var vy:Number = 8;
var dir:int = 0;
var friction:Number = 1;
var piover180:Number = Math.PI /180;
var key_left:Boolean = false;
var key_right:Boolean = false;
var key_up:Boolean = false;
var key_down:Boolean = false;
//hero2
//initializes variables.
var a2:Number = 0.5;
var vx2:Number = 0;
var vy2:Number = 0;
var dir2:int = 0;
var friction2:Number = 0.9;
var piover1802:Number = Math.PI /180;
var key_left2:Boolean = false;
var key_right2:Boolean = false;
var key_up2:Boolean = false;
var key_down2:Boolean = false;
//Checks if the player presses a key.
stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyD own);
stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp) ;
//Lets the function main play every frame.
addEventListener(Event.ENTER_FRAME,Main);
// Init
var hero = new Hero();
addChild(hero);
hero.x=hero.x+150;
hero.y=hero.y+150;
var hero2 = new Hero2();
addChild(hero2);
hero2.x=hero2.x+50;
hero2.y=hero2.y+50;
//create the function main.
function Main(event:Event){
CheckKeys();
MoveHero();
CheckKeys2();
MoveHero2();
}
//create the function KeyDown.
function KeyDown(event:KeyboardEvent){
if(event.keyCode == 37){ //checks if left arrowkey is pressed.
key_left = true;
}
if(event.keyCode == 39){ //checks if right arrowkey is pressed.
key_right = true;
}
if(event.keyCode == 38){ //checks if up arrowkey is pressed.
key_up = true;
}
if(event.keyCode == 40){ //checks if down arrowkey is pressed.
key_down = true;
}
}
function KeyUp(event:KeyboardEvent){
if(event.keyCode == 37){ //checks if left arrowkey is released.
key_left = false;
}
if(event.keyCode == 39){ //checks if right arrowkey is released.
key_right = false;
}
if(event.keyCode == 38){ //checks if up arrowkey is released.
key_up = false;
}
if(event.keyCode == 40){ //checks if down arrowkey is released.
key_down = false;
}
}
function CheckKeys(){
if(key_left){
hero.rotation -= 1*dir;
hero.leftwheel.rotation = Math.min(24,Math.max(-24,hero.leftwheel.rotation-20));
hero.rightwheel.rotation = Math.min(24,Math.max(-24,hero.rightwheel.rotation-20));
} else if(key_right){
hero.rotation += 1*dir;
hero.leftwheel.rotation = Math.min(24,Math.max(-24,hero.leftwheel.rotation+20));
hero.rightwheel.rotation = Math.min(24,Math.max(-24,hero.rightwheel.rotation+20));
} else {
hero.leftwheel.rotation=4;
hero.rightwheel.rotation=4;
}
if(key_up){
dir = 3;
} else if(key_down){
dir = -3;
} else {
dir = 0;
}
}
function MoveHero(){
vx *= friction;
vy *= friction;
hero.x += Math.sin(hero.rotation*piover180)*a*dir;
hero.y -= Math.cos(hero.rotation*piover180)*a*dir;
}
//create the function KeyDown.
function KeyDown2(event:KeyboardEvent){
if(event.keyCode == 65){ //checks if left arrowkey is pressed.
key_left2 = true;
}
if(event.keyCode == 68){ //checks if right arrowkey is pressed.
key_right2 = true;
}
if(event.keyCode == 87){ //checks if up arrowkey is pressed.
key_up2 = true;
}
if(event.keyCode == 88){ //checks if down arrowkey is pressed.
key_down2 = true;
}
}
function KeyUp2(event:KeyboardEvent){
if(event.keyCode == 65){ //checks if left arrowkey is released.
key_left2 = false;
}
if(event.keyCode == 68){ //checks if right arrowkey is released.
key_right2 = false;
}
if(event.keyCode == 87){ //checks if up arrowkey is released.
key_up2 = false;
}
if(event.keyCode == 88){ //checks if down arrowkey is released.
key_down2 = false;
}
}
function CheckKeys2(){
if(key_left2){
hero2.rotation -= 1*dir2;
hero2.leftwheel.rotation = Math.min(24,Math.max(-24,hero2.leftwheel.rotation-5));
hero2.rightwheel.rotation = Math.min(24,Math.max(-24,hero2.rightwheel.rotation-5));
} else if(key_right2){
hero2.rotation += 1*dir2;
hero2.leftwheel.rotation = Math.min(24,Math.max(-24,hero2.leftwheel.rotation+5));
hero2.rightwheel.rotation = Math.min(24,Math.max(-24,hero2.rightwheel.rotation+5));
} else {
hero2.leftwheel.rotation=0;
hero2.rightwheel.rotation=0;
}
if(key_up2){
dir2 = 1;
} else if(key_down2){
dir2 = -1;
} else {
dir2 = 0;
}
}
function MoveHero2(){
vx *= friction2;
vy *= friction2;
hero2.x += Math.sin(hero2.rotation*piover180)*a*dir2;
hero2.y -= Math.cos(hero2.rotation*piover180)*a*dir2;
}
the car did turn fine untill i made it go faster with the, var a:Number = ;
is was set at 0.9 but i changed it to 6 so im gussing theres somthing in my code that needs changing but i cant work it out.
oh and another thing the car hero 2 i set new buttons for on the keyboard as its a 2 player game, but it wont move so not sure what ive done wrong there.
also i need a health bar that when the cars get hit or crash they lose health, ive created a health bar but it wont do what i want it to.
heres my full code,
//import some important flash libraries.
import flash.events.KeyboardEvent;
import flash.events.Event;
import flash.display.MovieClip;
//hero
//initializes variables.
var a:Number = 6;
var vx:Number = 4;
var vy:Number = 8;
var dir:int = 0;
var friction:Number = 1;
var piover180:Number = Math.PI /180;
var key_left:Boolean = false;
var key_right:Boolean = false;
var key_up:Boolean = false;
var key_down:Boolean = false;
//hero2
//initializes variables.
var a2:Number = 0.5;
var vx2:Number = 0;
var vy2:Number = 0;
var dir2:int = 0;
var friction2:Number = 0.9;
var piover1802:Number = Math.PI /180;
var key_left2:Boolean = false;
var key_right2:Boolean = false;
var key_up2:Boolean = false;
var key_down2:Boolean = false;
//Checks if the player presses a key.
stage.addEventListener(KeyboardEvent.KEY_DOWN,KeyD own);
stage.addEventListener(KeyboardEvent.KEY_UP,KeyUp) ;
//Lets the function main play every frame.
addEventListener(Event.ENTER_FRAME,Main);
// Init
var hero = new Hero();
addChild(hero);
hero.x=hero.x+150;
hero.y=hero.y+150;
var hero2 = new Hero2();
addChild(hero2);
hero2.x=hero2.x+50;
hero2.y=hero2.y+50;
//create the function main.
function Main(event:Event){
CheckKeys();
MoveHero();
CheckKeys2();
MoveHero2();
}
//create the function KeyDown.
function KeyDown(event:KeyboardEvent){
if(event.keyCode == 37){ //checks if left arrowkey is pressed.
key_left = true;
}
if(event.keyCode == 39){ //checks if right arrowkey is pressed.
key_right = true;
}
if(event.keyCode == 38){ //checks if up arrowkey is pressed.
key_up = true;
}
if(event.keyCode == 40){ //checks if down arrowkey is pressed.
key_down = true;
}
}
function KeyUp(event:KeyboardEvent){
if(event.keyCode == 37){ //checks if left arrowkey is released.
key_left = false;
}
if(event.keyCode == 39){ //checks if right arrowkey is released.
key_right = false;
}
if(event.keyCode == 38){ //checks if up arrowkey is released.
key_up = false;
}
if(event.keyCode == 40){ //checks if down arrowkey is released.
key_down = false;
}
}
function CheckKeys(){
if(key_left){
hero.rotation -= 1*dir;
hero.leftwheel.rotation = Math.min(24,Math.max(-24,hero.leftwheel.rotation-20));
hero.rightwheel.rotation = Math.min(24,Math.max(-24,hero.rightwheel.rotation-20));
} else if(key_right){
hero.rotation += 1*dir;
hero.leftwheel.rotation = Math.min(24,Math.max(-24,hero.leftwheel.rotation+20));
hero.rightwheel.rotation = Math.min(24,Math.max(-24,hero.rightwheel.rotation+20));
} else {
hero.leftwheel.rotation=4;
hero.rightwheel.rotation=4;
}
if(key_up){
dir = 3;
} else if(key_down){
dir = -3;
} else {
dir = 0;
}
}
function MoveHero(){
vx *= friction;
vy *= friction;
hero.x += Math.sin(hero.rotation*piover180)*a*dir;
hero.y -= Math.cos(hero.rotation*piover180)*a*dir;
}
//create the function KeyDown.
function KeyDown2(event:KeyboardEvent){
if(event.keyCode == 65){ //checks if left arrowkey is pressed.
key_left2 = true;
}
if(event.keyCode == 68){ //checks if right arrowkey is pressed.
key_right2 = true;
}
if(event.keyCode == 87){ //checks if up arrowkey is pressed.
key_up2 = true;
}
if(event.keyCode == 88){ //checks if down arrowkey is pressed.
key_down2 = true;
}
}
function KeyUp2(event:KeyboardEvent){
if(event.keyCode == 65){ //checks if left arrowkey is released.
key_left2 = false;
}
if(event.keyCode == 68){ //checks if right arrowkey is released.
key_right2 = false;
}
if(event.keyCode == 87){ //checks if up arrowkey is released.
key_up2 = false;
}
if(event.keyCode == 88){ //checks if down arrowkey is released.
key_down2 = false;
}
}
function CheckKeys2(){
if(key_left2){
hero2.rotation -= 1*dir2;
hero2.leftwheel.rotation = Math.min(24,Math.max(-24,hero2.leftwheel.rotation-5));
hero2.rightwheel.rotation = Math.min(24,Math.max(-24,hero2.rightwheel.rotation-5));
} else if(key_right2){
hero2.rotation += 1*dir2;
hero2.leftwheel.rotation = Math.min(24,Math.max(-24,hero2.leftwheel.rotation+5));
hero2.rightwheel.rotation = Math.min(24,Math.max(-24,hero2.rightwheel.rotation+5));
} else {
hero2.leftwheel.rotation=0;
hero2.rightwheel.rotation=0;
}
if(key_up2){
dir2 = 1;
} else if(key_down2){
dir2 = -1;
} else {
dir2 = 0;
}
}
function MoveHero2(){
vx *= friction2;
vy *= friction2;
hero2.x += Math.sin(hero2.rotation*piover180)*a*dir2;
hero2.y -= Math.cos(hero2.rotation*piover180)*a*dir2;
}