[英]Linear targeting in robocode
誰能解釋這個代碼? 我不明白循環條件,而“預測的X”。 為什么predicted_X < 18
? 18是什么意思?
while((++deltaTime)*BULLET_SPEED <
Point2D.Double.distance(myX, myY, predictedX, predictedY)) {
predictedX += Math.sin(enemyHeading) * e.getVelocity();
predictedY += Math.cos(enemyHeading) * e.getVelocity();
enemyHeading += enemyHeadingChange;
if(predictedX < 18.0
|| predictedY < 18.0
|| predictedX > getBattleFieldWidth() - 18.0
|| predictedY > getBattleFieldHeight() - 18.0) {
predictedX = Math.min(Math.max(18.0, predictedX),
getBattleFieldWidth() - 18.0);
predictedY = Math.min(Math.max(18.0, predictedY),
getBattleFieldHeight() - 18.0);
break;
}
}
該機器人的寬度為36像素,因此18.0是其一半。 條件只是確保您預測的X / Y不在戰場之外
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.