Вот код который я писал в начале. все вроде работает. кроме кучи багов. хоть щас на сцену

Код:
// Типа boolean
var up:Boolean=false;
var down:Boolean=false;
var left:Boolean=false;
var right:Boolean=false;
var brake:Boolean=false;
// Клавиша нажата
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_Down);
function key_Down(e:KeyboardEvent):void {
if (e.keyCode==38) {
up=true;
}
if (e.keyCode==40) {
down=true;
}
if (e.keyCode==37) {
left=true;
}
if (e.keyCode==39) {
right=true;
}
if (e.keyCode==32) {
brake=true;
}
}
// Клавиша отпушена
stage.addEventListener(KeyboardEvent.KEY_UP, key_Up);
function key_Up(e:KeyboardEvent):void {
if (e.keyCode==38) {
up=false;
}
if (e.keyCode==40) {
down=false;
}
if (e.keyCode==37) {
left=false;
}
if (e.keyCode==39) {
right=false;
}
if (e.keyCode==32) {
brake=false;
}
}
addEventListener(Event.ENTER_FRAME, movieCar);
// Переменные
var power:Number=0.3;
var friction:Number=0.95;
var braking:Number=0.85;// тормоз
var deceleration:Number=0.87;
var speed:Number=0;
var maxSpeed:Number=10;
var maxDownSpeed:Number=1;
var gradusRot:Number=2.4;
var gradus:Number=0;
var radian:Number;
var speedX:Number;
var speedY:Number;
function movieCar(e:Event):void {
if (up) {
speed+=power&&speed<maxSpeed;
}
if (down) {
speed-=power;
//speed = -1;
}
if ((left) && (up) || (left) && (down)) {
gradus-=gradusRot;
}
if ((right) && (up) || (right) && (down)) {
gradus+=gradusRot;
}
if (brake) {
speed*=braking;
}
radian = (gradus * Math.PI)/180;
speedX=speed*Math.cos(radian);
speedY=speed*Math.sin(radian);
MyCar.rotation=gradus;
MyCar.x+=speedX;
MyCar.y+=speedY;
var MyCarW:Number=MyCar.width/2;
var MyCarH:Number=MyCar.height/2;
/*координаты сцены + половину ширины или высоты обьекта*/
if (MyCar.x>550+MyCarW) {
MyCar.x = 0 - (MyCarW);
}
if (MyCar.x < 0 -(MyCarW)) {
MyCar.x=550+MyCarW;
}
if (MyCar.y>600+MyCarH) {
MyCar.y = 0 - (MyCarH);
}
if (MyCar.y < 0 -(MyCarH)) {
MyCar.y=600+MyCarH;
}
}
Только объект MyCar создать. Баги есть но работает!
Правда не могу понять. При нажатии лево/право я увеличиваю gradus obj поворачивается на него.
Скорость разложена на

Код:
speedX=speed*Math.cos(radian);
speedY=speed*Math.sin(radian);
при нажатии вперед / назад скорость увеличивается на power/ тока не могу теперь понять как уваеличивать скорость в пределах от нуля до (допустим) 3. от 3 до 6, с 6 до 10. и как в любой момент времени реализовать торможение тобись направленное (не знаю как по другому) снижении скорости от n (где n скорость) до 0.???????????????????\
И второй вопрос. не мучайте меня подскажите. может сразу в классы пакеты или как там (я еще не разобрался в них) ведь создаю игру и в ней будут машины. хотя бы те которыми будет управлять один игрок. так как это все дело запихнуть в классы и загружать на сцену в определенные координаты?