假设我在房间里爬行,除了“ Game.creeps.creep.room.find(Game。)”之外,还有其他方法可以将对象放到房间里吗?

诸如.room.sources之类的东西?

因为我当前正在使用此:

var creep;
var target;
creep = Game.creeps.Creep1;
if(!creep.memory.target) {
  target = creep.pos.findNearest(Game.SOURCES,{filter:function(s) { return s.energy > 0; }});
  creep.memory.target = target.id;
}
else{
  target = creep.room.find(Game.SOURCES,{filter:function(s) { return s.id == creep.memory.target; }});
}


由于过滤器的作用,这似乎有点慢。

最佳答案

万一有人阅读并感到困惑,由于提出/回答了此问题,因此添加了新方法。 Game.getObjectById()

在上面的代码中,可以将else块中的语句替换为:

target = Game.getObjectById(creep.memory.target);

09-25 18:26