
Код AS3:
// Типа 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;
}
}
Добавлено через 1 минуту
Проблемы: нет предела скорости при нажатой down. поворот возможен только при нажатой up. Не знаю как зделать возможность поворачивать когда скорость выше (не знаю даже чего)
Добавлено через 4 минуты
ошибка выдается

Код AS3:
if (down) {
speed-=power; //в этой строке
//speed = -1;
}
Добавлено через 7 минут
что означают операторы в твоем коде?
не могу понять. весь день бошку ломаю. разясни плз