// Creep has Energy packed
        creep.say('E: ' + creep.carry.energy);
        if (creep.carry.energy > 0) {
            creep.moveTo(creep.room.controller);
            creep.upgradeController(creep.room.controller);
        }
        // Creep has no Energy
        else {
            creep.moveTo(Game.spawns.Spawn1);
            Game.spawns.Spawn1.transferEnergy(creep, creep.carryCapacity);
            creep.moveTo(creep.room.controller);
            creep.upgradeController(creep.room.controller);
        }


上面的代码应该发送蠕动以升级控制器。当它没有能量时,它将去产生并获得一些能量。但是,它并没有移到生成器,而是停留在控制器上。

问题:哪个命令正在取消creep.moveTo(Game.spawns.Spawn1);

我是否必须使用蠕变的Memory并添加诸如isMoving: true的一种状态并进行跟踪?

最佳答案

这正是您命令执行爬取的步骤。最后三行将moveTo更改为控制器。删除此行和下一行。

如果您将多个moveTo发送到蠕变,它将仅执行最后一个。因为它之前覆盖了moveTo命令。

关于screeps - Creep.moveTo()是非阻塞方法吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31997285/

10-10 07:22