Java 机器人代码响应转弯

Java 机器人代码响应转弯,java,math,equation,degrees,robocode,Java,Math,Equation,Degrees,Robocode,我正在尝试为机器人代码制作一个机器人,当它看到机器人时,它总是垂直旋转 如果你不知道什么是机器人游戏,想象一下一个自上而下的游戏,方向是以度数记录的 我已经做了一个等式,它能满足我的要求,但效率很低 (e.getHeading是目标面对的方向, getHeading是我面对的方向 请注意,还有一种方法(显示相对于敌人的角度) 但问题是,它有时会走很长的路,而不是最短的路线。我可以用什么更好的方程式来始终保持正确的方向呢?您必须规范化 degdiff = (e.getHeading() + 90)

我正在尝试为机器人代码制作一个机器人,当它看到机器人时,它总是垂直旋转

如果你不知道什么是机器人游戏,想象一下一个自上而下的游戏,方向是以度数记录的

我已经做了一个等式,它能满足我的要求,但效率很低

(e.getHeading是目标面对的方向, getHeading是我面对的方向 请注意,还有一种方法(显示相对于敌人的角度)


但问题是,它有时会走很长的路,而不是最短的路线。我可以用什么更好的方程式来始终保持正确的方向呢?

您必须规范化

degdiff = (e.getHeading() + 90) - getHeading()
所以它在-180到180之间。这不是

if(degdiff >  180) degdiff -=360;
if(degdiff < -180) degdiff +=360;
然后

turnRight(degdiff)
你可以用

setTurnRightRadians(normalRelativeAngle(e.getBearingRadians() + Math.PI / 2))
e.getHeading()
是敌人的航向

turnRight(degdiff)
setTurnRightRadians(normalRelativeAngle(e.getBearingRadians() + Math.PI / 2))