Skocz do zawartości

Rekomendowane odpowiedzi

Witam. Mam wam do zaprezentowania mój własny system pathfindingu GMDijkstra. Wiem, że jest juz takich dużo na GMC, ale mój ma coś czego nie mają inne ;>

 

Jak to obsłużyć?

Cały system jest zawarty w kilkunastu skryptach w pliku GM6, aby wrzucić te skrypty do swojej gry, trzeba mergnąć swoją grę z tym plikiem. Przed wykonaniem jakichkolwiek funkcji należy wywołac funkcję gmd_init(). Następnie dodajemy mapy funkcją gmd_map_create(), blokujemy komórki w miejscach przeszkód za pomocą gmd_map_block_position(), lub uzywamy gmd_map_autoblock() (nie polecam - za wolno działa), na koniec uzywamy gmd_instantsearch() do znalezienia patha. (to tak w dużym skrócie) Dodatkowo za pomocą gmd_set_algorithm() mozna zmienic sposob obliczania patha.

 

Jak to działa?

Do szukania patha skrypt wykorzystuje algorytm Dijkstry. Działa on następująco: Zaczynając od komórki startowej skrypt najpierw sprawdza wszystkie sąsiednie komórki i zapisuje w nich odleglosc od startu i pozycje komórki która była jej poprzednikiem. Kiedy cel zostanie odnaleziony, zostanie odtworzona droga od celu do startu za pomoca zapisanych poprzednikow i zostanie utworzony path.

Za pomocą gmd_set_algorithm() można przełączyć się na Best-first algorithm, aby pierwszeństwo miały komórki które są bliżej celu. Wtedy cel może być wyszukany szybciej na otwartych przestrzeniach, ale droga nie zawsze jest najkrótsza. Więcej info w komentarzach do każdego skryptu. (sorry że po ingliszu ale miałem trudności z wyjaśnieniem tych skryptów po polsku :boxed: )

 

Co w tym takiego niezwykłego?

Mój system jako jedyny obsługuje mapki złożone z hexów! :D Ponadto istnieją funkcje pozwalające na rozłożenie szukania na kolejne stepy, aby nie przycinać gry za każdym razem. Są też funkcje przydatne w debugowaniu rysujące zblokowane pola i postęp szukania patha.

 

Download: Link

 

Mam nadzieję, że teraz gmclan zaleje fala gier opierających się na hexach. Raportujcie bugi, jeśli jakieś są. Własne sugestie mile widziane. No i nacieszcie się tym bo teraz mnie nie będzie przez 10 dni. Byebye

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...