Показать сообщение отдельно
Старый 14.02.2011, 01:10
Vansimar вне форума Посмотреть профиль Отправить личное сообщение для Vansimar Найти все сообщения от Vansimar
  № 6  
Ответить с цитированием
Vansimar
 
Аватар для Vansimar

Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
сейчас с другом нашли сайтик,если кому надо,напишу потом,там формулы расчета взлята,горизонтального полета,теперь их привинчиваем к игре)вроде неплохо получается)

Добавлено через 41 час 27 минут
Код AS3:
import src.*;
//var _gameMap:GameMap;
//_gameMap = new GameMap();
//addChild(_gameMap);
 
//var plane1:TestObj=new TestObj(_gameMap);
var plane1:plane=new plane();
plane1.x=100;
plane1.y=580;
addChild(plane1);
 
var up:Boolean=false;
var left:Boolean=false;//флаги
var right:Boolean=false;
//38 - газ  37 - влево  39 - вправо
 
 
//variables
 
var gradusRot:Number=8;
var gradus:Number=0;
var radian:Number;
var powerY:Number=8;//подъемная сила
var Х:Number=0.3;// - лобовое сопротивление; 
var MaxSpeed:Number=14;
var speed:Number=0;
var gravity:Number=1;
var speedY:Number;
var speedX:Number;
var tag:Number;
var SpV:Number=0.7;
var masSam:Number=100;
var tagV:Number;
 
 
stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);//слушатели событий на нажатие кнопки
stage.addEventListener(KeyboardEvent.KEY_UP, key_up);//слушатели событий на отпускание кнопки
 
function key_down(e:KeyboardEvent):void {
	if (e.keyCode==38) {
		up=true;
	}
	if (e.keyCode==37) {
		left=true;
	}
	if (e.keyCode==39) {
		right=true;
	}
 
}
function key_up(e:KeyboardEvent):void {
	if (e.keyCode==38) {
		up=false;
	}
	if (e.keyCode==37) {
		left=false;
	}
	if (e.keyCode==39) {
		right=false;
	}
}
 
 
stage.addEventListener(Event.ENTER_FRAME, moves);
 
 
 
function moves(e:Event):void {
 
 
 
	if (up) {
 
		if(speed<10){
		speed+=0.4;
		speed+=gravity;
 
 
 
		}
	}
 
	if (! up) {
 
		speed-=0.1;
		if (speed<0){speed=0}
 
	}
 
 
 
	if (left) {
 
		gradus-=gradusRot;
 
	}
	if (right) {
		gradus+=gradusRot;
	}
    tag=SpV+masSam*Math.sin(radian);
	tagV=tag/masSam;
 
	radian=(gradus* Math.PI)/180;
	trace(speed);
	speedX=speed*Math.cos(radian);
	speedY=speed*Math.sin(radian);
	plane1.rotation=gradus;
	//plane1.y+=gravity;
	plane1.x+=speedX;
	plane1.y+=speedY; 
 
 
 
 
 
	if (plane1.x>827+58) {
		plane1.x=0-58;
	}
	if (plane1.x<0-58) {
		plane1.x=827+58;
	}
	if (plane1.y>600+58) {
		plane1.y=0-58;
	}
	if (plane1.y<0-58) {
		plane1.y=600+58;
	}
 
 
}