alwin Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 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 Więcej opcji udostępniania...
TheMarcQ Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 przy wysłaniu strzały w kierunku wroga: GML trasa=distance_to_object(wrog) GML (step) if distance_to_object(wrog)<trasa/2 {image_yscale-=0.01} if distance_to_object(wrog)>trasa/2 {image_yscale+=0.01} tak jeśli strzela w góre lub w dół Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
boom Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 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 Więcej opcji udostępniania...
Dawidds Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 gravity = coś, w rozpisce predkoscpionowa += grawitacja; y += predkoscpionowa; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
alwin Opublikowano 25 Kwietnia 2010 Autor Udostępnij Opublikowano 25 Kwietnia 2010 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 Więcej opcji udostępniania...
Rudy Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi
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ę