Скрипы - Как сделать расчет пути последовательным? - PullRequest
0 голосов
/ 19 апреля 2019

У меня есть прототип для создания планировки помещения. Я пытаюсь рассчитать место для размещения контейнера как:

ближайшая точка между порождением и контроллером, находящаяся на расстоянии одной единицы от контроллера

По какой-то причине он, кажется, дает мне несколько значений (возможно, из-за алгоритма маршрутизации), что соответствует точке перехода в соответствии с 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);
}

Запуск приведенного выше кода несколько раз (что необходимо) приводит к созданию нескольких строительных площадок:

enter image description here

1 Ответ

0 голосов
/ 19 июня 2019

По умолчанию при поиске пути крипы считаются непроходимыми тайлами.Чтобы это исправить, вы добавляете это к опции:

ignoreCreeps: true

...