2014-11-21 9 views
7

cerco di usare findNearest così:findNearest, findInRange - Come utilizzare in Screeps?

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

e questo è ciò che ottengo:

TypeError: undefined is not a function 
at module.exports:5:28 
at <main>:11:6 

Come utilizzare questo metodo e findInRange in modo che essi non causano questo errore?

risposta

0

Come posso vedere la documentazione è stata aggiornata e ora ha qualche codice di esempio.

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

+0

Si prega di includere il contenuto che si collega direttamente nella risposta; collegamenti rot. –

10

Ci sono diverse cose da notare qui:

  1. findNearest() non è nell'oggetto stanza. Correzione semplice var sources = creep.pos.findNearest(Game.SOURCES)
  2. findNearest() non restituisce una matrice di oggetti, restituisce un singolo oggetto (in particolare l'oggetto più vicino) o null. La correzione è quello di cambiare ciò che hai da creep.moveTo(sources); (si potrebbe desiderare di fare sources singolare per evitare confusione)
  3. Non hai fornito il codice ma ho intenzione di indovinare che stai facendo qualcosa di simile creep.room.findInRange() e ancora una volta non è nell'oggetto stanza è in pos, quindi sarebbe simile a questo, creep.pos.findInRange().
  4. Confusamente, le uniche funzioni in camera sono find(), lookAt(), findPath(), e makeSnapshot() mentre pos ha un bel po 'di più (elencati nel roomposition nella documentazione)

Se si guarda nella documentazione here per la stanza e here per roomposition e scorrere verso il basso è possibile vedere quali funzioni sono in quale oggetto.