Показать сообщение отдельно
Старый 20.07.2010, 16:04
dkrstudio вне форума Посмотреть профиль Отправить личное сообщение для dkrstudio Найти все сообщения от dkrstudio
  № 6  
Ответить с цитированием
dkrstudio

Регистрация: Jul 2010
Сообщений: 24
Код 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 минут
что означают операторы в твоем коде?
не могу понять. весь день бошку ломаю. разясни плз


Последний раз редактировалось udaaff; 20.07.2010 в 16:57.