我有這個問題:有這個敵人旋轉到我的玩家。當用我的玩家「圍繞」敵人時,我可以看到敵人正朝着我的玩家旋轉。 然後敵人突然轉過360度,再次面對我的玩家。我不知道爲什麼它會發生這種奇怪的360度轉彎,但是每當我繞過敵人幾秒時就會發生。請 - 有人可以幫我解決這個問題嗎?我很欣賞我能得到的每一個提示,因爲我不知道問題出在哪裏。敵人旋轉很奇怪
tempEnemy.dX = tempEnemy.x - player.x;
tempEnemy.dY = tempEnemy.y - player.y;
tempEnemy.rotateTo = toDegrees(getRadians(tempEnemy.dX, tempEnemy.dY));
if(tempEnemy.frame < 0) tempEnemy.frame += 360;
if(tempEnemy.frame > 359) tempEnemy.frame -= 360;
tempEnemy.trueRotation = int((tempEnemy.rotateTo - tempEnemy.frame)/tempEnemy.rotateSpeed);
tempEnemy.vX += (player.x - tempEnemy.x)/tempEnemy._speed;
tempEnemy.vY += (player.y - tempEnemy.y)/tempEnemy._speed;
tempEnemy.vX *= tempEnemy.decay;
tempEnemy.vY *= tempEnemy.decay;
更新:
private function toDegrees(radians:Number):Number
{
var degrees:Number = Math.floor(radians * 180/Math.PI);
//trace (degrees);
return degrees;
}
private function getRadians(deltaX:Number, deltaY:Number):Number
{
var radian:Number = Math.atan2(deltaY, deltaX);
if (deltaY < 0)
{
radian += (2 * Math.PI);
}
return(radian);
}
你可以發佈你的getRadians函數嗎? –
我更新了我的代碼。我插入ToDegrees和getRadians。希望這可以幫助。 – drpelz