Skocz do zawartości
Arrrqel

'Inteligentne chodzenie'

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 ;)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach
Chodzi mi jednocześnie o to aby postacie chodziły tylko po dróżkach...

 

Sprobuj zrobic im sciezki o ile chodzi ci o NPC (sciezki czyli pathe)

Udostępnij tego posta


Odnośnik do posta
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ć...

Udostępnij tego posta


Odnośnik do posta
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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Hmmm... jak by ścierzek było ze 150 to byłoby deko gorzej nie ? O.o

Pozatym ścieżki się tworzy więc przez to robi się deko trudniej :/

Ktoś ma jeszcze jakieś inne propozycje ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

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

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

Zaloguj się tutaj

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

×