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