所以我现在有一半可以正常工作,我说这一半是有效的,因为它似乎以某种方式将角度绕到最接近的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;
}
有没有人知道一种更好的方法,它可以获得精确的(显然至少让眼睛无法辨别)旋转角度,并以给定的速度在该方向上平移物体。
答案 0 :(得分:8)
没关系解决:
var carAngle:Number = carObj.rotation * Math.PI / 180;
carObj.x = carObj.x + speed * Math.cos(carAngle);
carObj.y = carObj.y + speed * Math.sin(carAngle);
答案 1 :(得分:0)
//在击中某物后旋转,然后以面朝前的某个角度移动......
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);
}