Java中的特定旋转算法

Java中的特定旋转算法,java,Java,我正在研究一种特殊的精灵旋转算法,就像在游戏《指挥和征服红色警报2》中一样 如果我点击JFrame上的任何地方,我的坦克就会向那个方向旋转,如果他已经完成旋转,他就会向目的地移动。到目前为止还不错 我的问题是我不能处理所有目的地的正确旋转和移动算法 这是一个方法,它通过执行i++或i--来旋转 公共双旋转(int-soll){ 如果(soll>ist){ 如果(i==360){ i=0; } 如果(i!=soll){ i++; canmove=false; } 否则{ ist=soll; can

我正在研究一种特殊的精灵旋转算法,就像在游戏《指挥和征服红色警报2》中一样

如果我点击JFrame上的任何地方,我的坦克就会向那个方向旋转,如果他已经完成旋转,他就会向目的地移动。到目前为止还不错

我的问题是我不能处理所有目的地的正确旋转和移动算法

这是一个方法,它通过执行i++或i--来旋转

公共双旋转(int-soll){
如果(soll>ist){
如果(i==360){
i=0;
}
如果(i!=soll){
i++;
canmove=false;
}
否则{
ist=soll;
canmove=true;
}
}
else if(soll
对于所有目的地,您的意思是什么?在什么情况下会出什么问题?你试过什么?@DrLove你有一张360张图片的精灵表吗?或者你使用的是同一张图片,你只想在上面执行仿射变换?sry我给了一个新的答案我不知道这是错的,所以sry
public double rotate(int soll){

    if(soll > ist){

            if(i==360){
                i=0;
            }
            if(i!=soll){
                i++;
                canmove = false;
            }
            else{
                ist=soll;
                canmove = true;
            }
    }
    else if(soll < ist){


            if(i==0){
                i=360;
            }
            if(i!=soll){
                i--;
                canmove = false;
            }
            else{
                ist=soll;
                canmove = true;
            }

    }



    return Math.toRadians(i);
}