繁体   English   中英

robocode中的线性定位

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM