簡體   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