2011-09-20 85 views
3

所以我有一些有一半的工作,現在,我說了一半的作品,因爲它似乎在某種程度上圓角到最近的45度左右,這裏是代碼:AS3:移動物體在其旋轉角度

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; 
} 

有沒有人知道一個更好的方法,它將獲得確切(至少如此眼睛無法區分差異)的旋轉角度,並以給定的速度在該方向上平移物體。

回答

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); 
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); 
}