我有教程中的以下代码,除了在模拟模式下它不起作用。
if(creep.memory.role == 'builder') {
if(creep.energy === 0) {
creep.moveTo(Game.spawns.Spawn1);
Game.spawns.Spawn1.transferEnergy(creep);
}
else {
var targets = creep.room.find(Game.CONSTRUCTION_SITES);
if(targets.length) {
creep.moveTo(targets[0]);
creep.build(targets[0]);
}
}
}在控制台中打印“目标”的结果,响应未定义。有人能解释"CONSTRUCTION_SITES“常量是如何工作的,以及如何在房间里找到它们吗?
发布于 2014-11-21 19:01:08
在我看来,代码看起来是对的,似乎您实际上没有为构建人员设置任何构造。例如,你是否使用左边的“构造”菜单来建造道路?
发布于 2015-09-16 06:57:13
我不知道这是否已经得到了回答,或者只是游戏中的语法发生了变化--这就是您最初以这种方式编写它的原因,但是这段代码适用于您正在做的事情:
var targets = creep.room.find(FIND_CONSTRUCTION_SITES);发布于 2014-11-22 00:18:29
在Screeps中,console.log()总是打印未定义的。在未定义之前,您可以找到打印值:
> console.log(Game)
[hh:mm:ss] [object Object]
< undefinedhttps://stackoverflow.com/questions/27068361
复制相似问题