Показать сообщение отдельно
Старый 19.03.2013, 22:09
салямчик вне форума Посмотреть профиль Отправить личное сообщение для салямчик Найти все сообщения от салямчик
  № 3  
Ответить с цитированием
салямчик

Регистрация: Dec 2012
Сообщений: 6
Код AS3:
private function moveCar(e:MouseEvent):void
		{
			if (isDown == false) return;
 
			if ((car.x >= _pointers[i].x - 1 && car.x <= _pointers[i].x + 1) || (car.y >= _pointers[i].y - 1 && car.y <= _pointers[i].y + 1))
			{				
				i++;
			}
 
			dx = _pointers[i].x - _pointers[i -1].x;
			dy = _pointers[i].y - _pointers[i -1].y;
 
			radians = Math.atan2(dy, dx);
 
			rotatePlayer();
 
			var k:Number = dy/dx;
//			trace (k);
 
			var mX:Number = stage.mouseX;
			var mY:Number = stage.mouseY;
 
			var b:Number = findB (k, car.x, car.y);
//			trace (b);
 
			var XX:Number = findX (b, k);
			var YY:Number = findY (b, k, XX);
 
			car.x = XX;
			car.y = YY;
 
			trace (car.x);
			trace (car.y);
			trace ('============');
 
 
 
		}
 
private function rotatePlayer():void
		{
			var degrees:Number = radians * 180/Math.PI +90;
			car.rotation = degrees;
		}		
 
		public function findB(k1:Number,px1:Number,py1:Number):Number
		{   
			return py1-k1*px1;
		}
 
		public function findX(b1:Number,k1:Number):Number
		{
			return ((stage.mouseY+(1/k1)*stage.mouseX)-b1)/(k1+1/k1);
		}
 
		public function findY(b1:Number,k1:Number,x:Number):Number
		{
			return k1*x+b1;
		}


Последний раз редактировалось салямчик; 19.03.2013 в 22:24.