вопросы вращения - PullRequest
       0

вопросы вращения

0 голосов
/ 25 февраля 2011

У меня проблемы с выключением этой функции вращения.У меня есть башня, которая должна вращаться в направлении другого движущегося объекта.он должен найти кратчайшее направление для поворота.

В основном то, что я сделал, это преобразование поворота скрипта действия из -1 -> -179 в 180 -> 359. но теперь у меня возникают проблемы, когда объект, за которым он отслеживается, проходитнад точкой нулевой степени.тогда турент вращается в другом направлении.

вот код.мой разум становится немного ошеломленным.передается разница x между объектами и разница y

public function Move(xdiff:Number,ydiff:Number){
        var currentRotation:Number;
        rot = Math.round(Math.atan(ydiff/xdiff) * (180/Math.PI));
        if(xdiff < 0){
            //this.rotation = 180 + rot;
            rot = rot + 180
        }else{
            //this.rotation = rot;
        }
        if(rot < 0 && rot > -90){
            rot = 270 + 90 + rot;
        }
        trace("idealrotation: " + rot + "currentrotation: " + rotation);
        currentRotation = rotation;
        if(currentRotation < 0){
            currentRotation += 360;
        }
        if(rot - currentRotation > 0){
            if(Math.abs(rot-currentRotation) < 5){
                rotation = rot;
            }else{
                rotation += rotationSpeed;
            }
        }else if(rot - currentRotation < 0){
            if(Math.abs(rot-currentRotation) < 5){
                rotation = rot;
            }else{
                rotation -= rotationSpeed;
            }
        }else{
            rotation = rot;
        }

        //this.rotation = rot;
    }

1 Ответ

0 голосов
/ 25 февраля 2011

Вот как я это сделал:

public function aim(stageX:Number, stageY:Number):void
{
    var angle:Number = (Math.atan2(stageY - y, stageX - x) - Math.PI * 0.5) * 180 / Math.PI;
    if (angle < 180) angle += 360;
    if (angle > 180) angle -= 360;
    targetAngle = angle;
}

x, y - координаты пушки, stageX, stageY - target.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...