Więc nauczyłem się, jak używać A * do wyszukiwania ścieżek i jestem w stanie używać go na siatce. Jednak mój świat gry jest ogromny i mam wielu wrogów zbliżających się do gracza, który jest ruchomym celem, więc system siatki jest zbyt wolny, aby znaleźć ścieżkę. Muszę uprościć wykres węzłów za pomocą siatki nawigacyjnej.
Rozumiem pojęcie „jak” działa siatka (znajdowanie ścieżki przez węzły na wierzchołkach i / lub środkach krawędzi wielokątów).
Moja gra wykorzystuje dynamiczne przeszkody, które są generowane proceduralnie w czasie wykonywania.
Nie mogę całkowicie owinąć głowy, jak wziąć samolot, który ma wiele przeszkód i programowo podzielić obszar, na którym można chodzić, na wielokąty dla siatki nawigacyjnej, jak na poniższym obrazku.
Gdzie zaczynam? Skąd mam wiedzieć, kiedy segment obszaru, na którym można chodzić, jest już zdefiniowany lub, co gorsza, kiedy zdaję sobie sprawę, że muszę podzielić wcześniej zdefiniowany obszar na spacery, gdy algorytm „przechodzi” przez mapę?
Używam javascript w nodejs, jeśli to ma znaczenie.