繁体   English   中英

Robocode自适应车削

[英]Robocode Responsive Turning

我正在尝试为robocode制作一个机器人,该机器人在看到机器人时总是垂直旋转。

如果您不知道什么是robocode,请想象一下一个自上而下的游戏,其中以度为单位记录方向

我已经做了一个方程,可以满足我的要求,但是效率很低

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

turnRight( (e.getHeading() + 90) - getHeading());

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

您将不得不归一化的结果

degdiff = (e.getHeading() + 90) - getHeading()

因此它在-180..180范围内。 这是

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

要么

degdiff = (degdiff%360 + 540)%360 -180

接着

turnRight(degdiff)

您可以使用

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

e.getHeading()是敌人的头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM