我有这个问题:有这个敌人旋转到我的玩家。当用我的玩家“围绕”敌人时,我可以看到敌人正朝着我的玩家旋转。 然后敌人突然转过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