我尝试像这样使用findNearest:

var sources = creep.room.findNearest(Game.SOURCES)
creep.moveTo(sources[0]);
creep.harvest(sources[0]);

这就是我得到的:
TypeError: undefined is not a function
at module.exports:5:28
at <main>:11:6

如何使用此方法和findInRange,以免它们导致此错误?

最佳答案

这里有几件事要注意:

  • findNearest()不在房间对象中。简单修复var sources = creep.pos.findNearest(Game.SOURCES)
  • findNearest()不返回对象数组,它返回一个单个对象(特别是最近的对象)或null。此处的解决方法是更改​​creep.moveTo(sources);的内容(您可能希望将sources设为单数以避免混淆)
  • 您没有提供代码,但我猜您正在做类似creep.room.findInRange()的操作,并且它又不在pos中的room对象中,所以看起来像是creep.pos.findInRange()
  • 令人困惑的是,房间中唯一的功能是find()lookAt()findPath()makeSnapshot(),而pos还有很多功能(在文档的roomposition中列出)

  • 如果您在文档here中查找房间,在here中查找房间位置,然后滚动到底部,则可以看到哪些功能位于哪个对象中。

    关于javascript - findNearest,findInRange-如何在爬行动物中使用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27056660/

    10-11 14:15