我正在尝试为机器人代码制作一个机器人,当它看到机器人时,它总是垂直转动。
如果你不知道机器人代码是什么,想象一下一个自上而下的游戏,它的方向是以度为单位记录的
我已经做了一个方程式来做我想做的事,但它的效率非常低
(e.getHeading是目标面对的方向,getHeading是我面对的方向请注意,还有一个方法getBearing可以显示相对于敌人的角度)
turnRight( (e.getHeading() + 90) - getHeading());但问题是,它有时会走很长的路,而不是最短的路线。有什么更好的方程式可以让我总是转向正确的方向呢?
发布于 2017-05-22 15:00:40
您必须将结果规范化
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)发布于 2017-10-08 01:48:45
您可以使用
setTurnRightRadians(normalRelativeAngle(e.getBearingRadians() + Math.PI / 2))e.getHeading()是敌人的航向。
https://stackoverflow.com/questions/44105017
复制相似问题