是否可以让 creep 交换位置同时移动?
Is it possible to have creeps swap positions moving simultaneously?
使用 moveTo() 函数,creep 将尝试绕过其他 creep,这可能会降低效率,同时尽量减少 creep 相互穿越所需的道路数量。是否可以让 2 个 creep 同时移动,以便他们在试图穿过彼此时可以交换空间,或者让他们交换空间作为一个动作?
是的,这是可能的。 moveTo()
方法有多个不同的选项,您可以将其作为输入提供。您应该查看 API documentation,但其中一个选项是 ignoreCreeps
。默认值为 false
。这意味着其他 creep 被算作障碍物。
将其更改为 true
需要一些准备工作。至少我建议进行某种卡住检测。如果一个 creep 试图移动,但在多个 tick 中都静止不动,它应该触发另一种方法。
其中一种方法可能是调查挡路的是什么。如果障碍物是另一个 creep,则该 creep 可能会尝试调用阻碍 creep 的 moveTo()
操作。
使用 moveTo() 函数,creep 将尝试绕过其他 creep,这可能会降低效率,同时尽量减少 creep 相互穿越所需的道路数量。是否可以让 2 个 creep 同时移动,以便他们在试图穿过彼此时可以交换空间,或者让他们交换空间作为一个动作?
是的,这是可能的。 moveTo()
方法有多个不同的选项,您可以将其作为输入提供。您应该查看 API documentation,但其中一个选项是 ignoreCreeps
。默认值为 false
。这意味着其他 creep 被算作障碍物。
将其更改为 true
需要一些准备工作。至少我建议进行某种卡住检测。如果一个 creep 试图移动,但在多个 tick 中都静止不动,它应该触发另一种方法。
其中一种方法可能是调查挡路的是什么。如果障碍物是另一个 creep,则该 creep 可能会尝试调用阻碍 creep 的 moveTo()
操作。