[英]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.