AS3: переместить объект в его угол поворота - PullRequest
3 голосов
/ 20 сентября 2011

Итак, у меня сейчас есть кое-что, что наполовину работает, я говорю, что оно наполовину работает, потому что кажется, что оно как-то округляется до ближайших 45 градусов или около того, вот код:

public function drive(e:Event)
{
    speedX =Math.sin(carObj.rotation*(Math.PI/180))*2;
    speedY = Math.cos(carObj.rotation*(Math.PI/180))*2*-1;
    carObj.x +=  speedX * speed;
    carObj.y +=  speedY * speed;
}

Кто-нибудь знает лучший способ, который получит точный (по крайней мере, видимый, чтобы глаз не различал) угол поворота и переместит объект в этом направлении с заданной скоростью.

Ответы [ 2 ]

8 голосов
/ 20 сентября 2011

неважно решено:

var carAngle:Number = carObj.rotation * Math.PI / 180;
carObj.x = carObj.x + speed * Math.cos(carAngle);
carObj.y = carObj.y + speed * Math.sin(carAngle);
0 голосов
/ 22 апреля 2013

// вращение после удара, а затем движение под некоторым углом с лицом вперед ...

var speedX:Number = randomRange(-10,10); // function generating random numbers
var speedY:Number  = randomRange(-10,10);

carObj.x += speedX;
carObj.y += speedY;

function calculateAngle()
{
 var radians:Number = 180 / Math.PI;
 //Calculate rotation
 var walkdirection = - (Math.atan2(tempAlien_mc.oldX - tempAlien_mc.x, tempAlien_mc.oldY - tempAlien_mc.y))*radians;
 //Rotating Car
 tempAlien_mc.rotation = walkdirection;
}

function randomRange(minNum:Number, maxNum:Number):Number   
{  
  return (Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum);  
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...