Używam paczki PathFinding.js aby wyznaczyć ścieżke do 3 jasno-zielonych elementów przy mojej pozycji zaznaczonej na złoto i kolizjach na czerwono:
(na tym obrazku x i y są na odwrót bo się pomyliłem z obrazem).
Użyłem wskazówek z dokumentacji i napisałem coś takiego:
var grid = new PF.Grid(6, 6);
grid.setWalkableAt(0, 1, false);
grid.setWalkableAt(1, 1, false);
grid.setWalkableAt(2, 1, false);
grid.setWalkableAt(3, 1, false);
grid.setWalkableAt(4, 1, false);
grid.setWalkableAt(1, 2, false);
grid.setWalkableAt(0, 3, false);
grid.setWalkableAt(1, 3, false);
var finder = new PF.AStarFinder();
var path1 = finder.findPath(0, 0, 2, 2, grid);
var path2 = finder.findPath(0, 0, 0, 2, grid);
var path3 = finder.findPath(0, 0, 5, 0, grid);
console.log(path1.length)
console.log(path2.length)
console.log(path3.length)
Z jakiegoś powodu tylko `path1.length` ma poprawną wartość 11. `path2.length` i `path3.length` zwracają 0. Nie wiem czy to ja zrobiłem gdzieś błąd czy to z tą libką jest coś nie tak?
Wybrałem ją ze względu na to, że można ustawić kolizje za pomocą koordynatów a nie tzw "matrixa" oraz ma ona 6.2k gwiazdek na GH. Jeśli to ta biblioteka, to znacie jakąś fajną alternatywę? Zależy mi na tym, żebym mógł ustawić kolizje, początkowy punkt i punkt docelowy za pomocą koordynatów.
codepen demo