screeps - Creep.moveTo() 是非阻塞方法吗?

标签 screeps

        // 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 来升级 Controller 。当它没有能量时,它会去产卵处获取一些能量。但它并没有移动到生成点,而是停留在 Controller 处。

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

我是否必须使用 Creep 的内存并添加一种状态,例如 isMoving: true 并跟踪它?

最佳答案

这正是你命令小兵要做的事情。倒数第三行将 moveTo 更改为 Controller 。删除此行和以下行。

如果你向 Creep 发送多个 moveTo,它只会执行最后一个。因为它覆盖了之前的 moveTo 命令。

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

相关文章:

memory - Screeps 内存如何添加?

node.js - 如何在 Raspberry Pi 2 上全新安装 Raspbian Jessie 时启动独立的 Screeps 服务器?

javascript - Screeps 很少有错误/问题

javascript - Screeps 获得所有具有特定内存(角色)的 creeps

javascript - Screeps getDirectionTo 返回 -2

screeps - 从控制台与脚本交互

javascript - 寻找能量最高的结构

javascript - 遍历过滤后的列表返回 undefined

javascript - 游戏 Screeps - creep.room.find(Game.CONSTRUCTION_SITES);不工作

screeps - C.Game.structs 中缺少墙壁和道路