Skocz do zawartości

Uciekający przeciwnik


Patryqs

Rekomendowane odpowiedzi

Witam. Robię właśnie swoją nową grę, ale utknąłem, gdyż chciałbym, aby postać uciekała przed moim bohaterem. Na razie jest tak, że po prostu biega po całym roomie randomowo, ale to bez sensu bo czasem sam na mnie wpada. Chodzi mi o to, czy byłaby taka możliwość, że ta postać biega sobie jak chce, ale gdy się do niej zbliżę, to ona zaczyna uciekać? (ale gdy dostatecznie daleko ucieknie, to znów biegnie gdzie chce) :rolleyes:

Odnośnik do komentarza
Udostępnij na innych stronach

Najprostszym sposobem byłoby chyba obliczenie wektora, który ma prowadzić do celu (np. gracza) i zamienić jego zwrot.

Krótko mówiąc odwrotne move_towards_point(...), czy jak się tam ta funkcja zwała.

Potem sprawdzałbyś dystans, jeśli obiekt oddalił się na tyle od celu, że 'może czuć się swobodnie' to niech sobie chodzi randomowo.

Znaczy to tyle, że musiałbyś stworzyć sobie stany, które mówią czy obiekt ma się randomowo poruszać, czy też uciekać od celu/gonić cel.

Jeśli ten obiekt podczas uciekania miałby omijać przeszkody to już inna bajka, choć z tego co mi wiadomo GM oferuje kilka funkcji, dzięki którym zwykle nie trzeba się bawić w pathfinding.

Odnośnik do komentarza
Udostępnij na innych stronach

Więc najłatwiej to chyba tak:

GML (step)
image_angle=direction

if distance_to_object(o_player) < 320

direction=point_direction(o_player.x, o_player.y)-180 // nie jestem pewien czy dobre argumenty

else

if alarm[0]=-1 then alarm[0] = 60

Masz już prościutkie wykrywanie, teraz losowe chodzenie

GML (alarm0)
direction=random(360)

I jeszcze prędkość

GML (create)
speed=4

EDIT: Przepraszam, najwidoczniej zgłupiałem do reszty bo coś głupiego napisałem, kod już jest zmieniony

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