Skocz do zawartości

Ruch po paraboli


alwin

Rekomendowane odpowiedzi

Hejka. Mam Łuczników którzy miotają śmiercionośne strzały :sp_ike:

Zrobiłem tak że tworzy się ona z direction skierowanym do wroga no i sobie pedzi, a jak miałbym zrobic jeżeli chcę uzyskać bardziej realny ruch tej strzały? Czyli po paraboli?

Odnośnik do komentarza
Udostępnij na innych stronach

Parabole tańczą, tańczą tańczą tańczą... Do rzeczy.

Mamy tu do czynienia z równaniem kwadratowym z dodatnim współczynnikiem a oraz deltą. Jeżeli przyjmiemy jako x1 pozycję gracza w chwili wystrzału(współrzędna x) a jako x2 współrzędną x wroga w tym samym momencie otrzymujemy proste równanie:

y = a*(x-x1)*(x-x2).

poeksperymentuj z ustawianiem a, gdyż od niego zależy jak stromo strzała będzie lecieć.

@edit: do strzały samonaprowadzającej ustawiasz jej w create któregoś z wrogów jako cel i jego x sprawdzasz co stepa.

Odnośnik do komentarza
Udostępnij na innych stronach

dzieki, zaraz sprawdzę:)

Ale puki co próbowałem zrobić tak- przy wystrzale strzały zostaje zapisana w niej zmienna dystans- która zawiera dystans do wroga. W step strzaly mam-

GML
step_dystans = point_distance(x,y,cel.x,cel.y)

if(dystans<=(step_dystans)){direction-=2} else if(dystans>(step_dystans/2)){direction+=2}

 

chciałem tym uzyskać płynna zmianę direction strzaly-leci do połowy dystansu zwiekszając direction, po połowie zmniejsza. Tak chyba by wyszedł ruch po paraboli.. ale dupa:/ cos inaczej strzałka leci. Why?

Odnośnik do komentarza
Udostępnij na innych stronach

GML
step_dystans = point_distance(x,y,cel.x,cel.y)

if(dystans<=(step_dystans/2)){direction-=2} else if(dystans>(step_dystans/2)){direction+=2}

// ^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

// tutaj też musisz podzielić przez 2 tego tutaj już nie trzeba, jeśli pierwszy warunek się nie zgadza, drugi musi się zgadzać</span>

Zakładam, że "dystans" ustalasz raz w Create. No i zmiana direction jest odpowiednio mała. Jeśli skręci więcej niż 90° nim doleci do połowy dystansu, to wróci i trafi w ciebie :D .

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