У меня есть прототип для создания планировки помещения. Я пытаюсь рассчитать место для размещения контейнера как:
ближайшая точка между порождением и контроллером, находящаяся на расстоянии одной единицы от контроллера
По какой-то причине он, кажется, дает мне несколько значений (возможно, из-за алгоритма маршрутизации), что соответствует точке перехода в соответствии с API . Как я могу получать один и тот же результат каждый раз, а не три разных балла?
Room.prototype.layoutRoom=function(){
var s:Spawn=this.spawns()[0]
var c:Controller=this.controller;
//get path from spawn to controller
var path = this.findPath(s.pos, c.pos, {ignoreDestructibleStructures: true});
//place container on last part of path -3 to stay 1 away from controller, and closest to spawn
//length-1= on endpoint, -2 is one step away, -3 is two steps away
var loc=path[path.length-3]
console.log('layout room, put container: '+loc.x+' '+loc.y)
this.createConstructionSite(loc.x, loc.y, STRUCTURE_CONTAINER);
}
Запуск приведенного выше кода несколько раз (что необходимо) приводит к созданию нескольких строительных площадок: