使用setFire,setAhead等,而不调用execute()

时间:2014-05-03 08:49:36

标签: robocode

我在Robocode中扩展了一个开源的AdvancedRobot。该机器人使用setFire进行拍摄,但从不调用执行(不会出现在代码中)。我想知道如何才能拍摄(确实如此)。 SetFire的文档说:此调用立即返回,并且在您调用execute()或执行执行操作之前不会执行。 我不知道"采取执行的行动"意思。 更好的是,"行动"是什么意思?

我的主要目标是每次发射子弹时做一些事情,所以我已经覆盖了fire和fireBullet方法,但这并不适用于" set"方法(因为它可以多次调用它,每次都抛出先前的顺序,只有当你"调用execute()或采取执行")时才会拍摄。所以,也许有办法解决。

无论如何,如果有人能帮助解决任何这些问题,我感到很高兴。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

这个问题肯定是陈旧的,但供将来参考:

执行的操作基本上是“机器人可以执行的操作,不以set开头”,如fireahead,依此类推。调用其中任何一个也将执行。

如果你想在每次射击子弹时做一些特别的事情,你可以使用以下内容:

if (setFireBullet(someBulletPower) != null) {
    // you only land here when a REAL bullet is fired,
    // that is, when the gun heat was down.
}

当然这只有在你正在扩展的开源机器人正在执行的情况下才会起作用(虽然我不知道在不知道代码的情况下它是不是每次都这样做)。