Skocz do zawartości

'Inteligentne chodzenie'


Arrrqel

Rekomendowane odpowiedzi

Cześć !

Od roku zajmuje się GameMakerem i mam pewien problem:

Otóż chcę zrobić grę, ale ‘Knights and Merechans’ (wiem, że nie słyszeliście), ale nie ważne...

Nie potrafię stworzyć ‘inteligentnego chodzenia’... Próbowałem użyć tego, który prezentował Mark Overmars ale kiedy tworzyłem dwa takie same obiekty wszystko się... waliło...

Chodzi mi jednocześnie o to aby postacie chodziły tylko po dróżkach...

Dlatego was proszę o pomoc ;)

Odnośnik do komentarza
Udostępnij na innych stronach

No... Prawie...

Nie chodzi mi o 'flagi'... może opiszę to tak:

Jest sobie baza główna, do niej są transportowane wszystkie surowce, pierwszym możliwym do wybudowania budynkiem jest kamieniarz, Najpierw trzeba jednak do konstrukcji wybudować ścieżkę, segment, po segmencie (najlepiej 32x32)... kiedy ścieżka zostaje wybudowana do budynku może iść kamieniarz, on wykopuje kamienie i 'chowa' je do swojego budynku, teraz jest rola tragarzy, którzy muszą iść do budynku (po ścieżce) i wziąć kamień, następnie (znowu po ścieżce) przetransportować go do bazy głównej...

 

Lepiej nie potrafię wytłumaczyć...

Odnośnik do komentarza
Udostępnij na innych stronach

Mógłbyś zrobić takie "markery" (Ah Serious Sam) :P Tzn. Tworzysz pare obiektów Marker1, Marker2 itp...

Potem ustawiasz coś w ten deseń :

 

Create gościa (wroga)

 

in_out=1;
if in_out=1
{
  move_towards_point(marker01.x,obj_marker01.y,speed)
};

W kolizji wroga z marker01:

 

if in_out=1
{
move_towards_point(marker02.x,marker02.y,speed)
};

 

w kolizji z marker02:

 

if in_out=1
{
move_towards_point(marker03.x,marker03.y,speed)
};
else
{
move_towards_point(marker01.x,marker01.y,speed)
};

 

A w kolizji z ostatnim markerem 03:

 

in_out=0;
if in_out=0
{
move_towards_point(marker02.x,marker02.y,speed)
};

Wdł. tego twój NPC powinien łazić za markerami a gdy dotrze do ostatniego to wróci z powrotem dokładnie po tych samych markerach i dotrze do pierwszego, a z niego znowu rozpocznie patrol i tak w kółko. =P

 

PS: Jak by co to podziękowania w Credits xD

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

Użyć wbudowanego systemu patchfinding w GM i zaznaczyć wszystkie pola jako zajęte. Następnie po wybudowaniu danej kratki ścieżki odznaczasz dane pole jako zajęte. Potem generujesz np. jakieś chodzenie na tej podstawie i tyle. Wygenerowana ścieżka to path, tak więc przypisujesz go ludzikowi. Gdy ten osiągnie pozycję docelową, to musisz usunąć koniecznie ten path z pamięci. Gorzej już gdy w czasie chodzenia usuniesz dany kawałek ścieżki. Wtedy byś musiał wszystkim ludzikom na nowo generować ścieżki. Ewentualnie można by było zrobić u ludzika sprawdzanie co snap to grid czy koliduje ze ścieżką, jeśli nie, to cofnij do poprzedniej kratki i wygeneruj na nowo path.

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ę...