是否有可能让creeps交换位置同时移动?

时间:2018-05-04 12:09:24

标签: screeps

使用moveTo()函数,creeps将尝试绕过其他小兵,这可能会在尝试最小化小兵穿越彼此所需的道路数量时降低效率。是否有可能让两个小兵同时移动,以便他们可以交换空间,如果他们试图通过彼此或让他们交换空格作为一个动作?

1 个答案:

答案 0 :(得分:2)

是的,这是可能的。 moveTo()方法有多个不同的选项,您可以将其作为输入提供。您应该查看API documentation,但其中一个选项是ignoreCreeps。默认值为false。这意味着其他小兵被视为障碍物。

将此更改为true需要一些准备工作。至少我建议进行某种卡住检测。如果蠕变试图移动,但是静止不动多次,则应触发另一种方法。

其中一种方法可能是调查阻碍它的方式。如果障碍物是另一种蠕变,则蠕变可能会试图调用阻碍蠕变的moveTo()操作。