// 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/