У меня есть проблема: есть этот враг, который вращается к моему игроку.Во время «вращения» противника с моим игроком я вижу, что противник вращается в направлении моего игрока.И тогда противник внезапно поворачивается на 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);
}