2014-11-21 2 views
7

Я пытаюсь использовать FindNearest так:findNearest, findInRange - Как использовать в Screeps?

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 так, что они не вызывают эту ошибку?

ответ

0

Как я вижу, документация обновлена ​​и теперь есть образец кода.

http://screeps.com/docs/RoomPosition.php

+0

Пожалуйста, включите контент, который вы связываете непосредственно в своем ответе; ссылки гниют. –

10

Есть несколько вещей, чтобы отметить здесь:

  1. findNearest() находится не в объекте номера. Простое исправление var sources = creep.pos.findNearest(Game.SOURCES)
  2. findNearest() не возвращает массив объектов, он возвращает один единственный объект (в частности, ближайший объект) или null. Исправлено здесь, чтобы изменить то, что у вас есть, creep.moveTo(sources); (возможно, вы хотите сделать sources исключительным, чтобы избежать путаницы)
  3. Вы не указали код, но я собираюсь угадать, что вы делаете что-то вроде creep.room.findInRange() и снова это не в объекте комнаты он находится в pos, поэтому он будет выглядеть следующим образом: creep.pos.findInRange().
  4. Смутно, только функции в комнате find(), lookAt(), findPath() и makeSnapshot() тогда поз имеет довольно много больше (перечислены в roomposition в документации)

Если вы смотрите в документации here номера и here для размещения и прокрутки донизу вы можете видеть, какие функции находятся в объекте.

 Смежные вопросы

  • Нет связанных вопросов^_^