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