Skocz do zawartości

Trajektora lotu


Rekomendowane odpowiedzi

No więc tak, zrobiłem strzelanie z łuku, strzała przez 30 stepów leci prosto, a potem opada bodajże z gravity=0.3. Mierzyć można praktycznie w każdym kierunku, chciałbym w jakiś sposób obliczać trajektorię lotu strzały jeszcze przed jej wystrzeleniem (potrzebne mi to dla botów, by jakoś wyliczać im kont mierzenia z łuku).

 

Ma ktoś jakieś genialne pomysły/wzory?

 

... Tymon xD?

Odnośnik do komentarza
Udostępnij na innych stronach

Chodzi o to że podajesz im odległość na jaką ma być wystrzelona strzała i z tego ma wyliczyć kąt??

Odnośnik do komentarza
Udostępnij na innych stronach

Może spróbuj tak

if direction < 90
direction=point_direction(x,y,OS.x,OS.y)+distance_to_object(OS)*L
else
direction=point_direction(x,y,OS.x,OS.y)-distance_to_object(OS)*L
if direction > 270
direction=point_direction(x,y,OS.x,OS.y)+distance_to_object(OS)*L

OS to obiekt do którego ma strzelać, L to dowolna liczba, zaleznie jaka bedzie ci potrzebna aby działało.

Odnośnik do komentarza
Udostępnij na innych stronach

Najprościej? Stwórz nowy obiekt i:

l = 0;
while( place_free( x, y ) )
{
     l += 1;
     x += lengthdir_x( 1, direction );
     y += lengthdir_y( 1, direction ) + gravity;
}

Czy coś podobnego. Rozumiesz zasadę?

Odnośnik do komentarza
Udostępnij na innych stronach

Tymona sposob okazał się nie do końca ok dlatego, że grawitacja wciąż zwieksza siłę opadania, ale to nie był problem. Potem miałem jeszcze kilka ale wkońcu, to co tymon dał naprowadziło mnie na dobry sposób, zostaje teraz tylko taki mały wał... ponieważ przeciwnik może stać w różnych miejsach, trzeba to sprawdzać na każym directionie, by to nie trwało wieki dalem w loopa, i teraz jest loop by powtarzał się kod na kazdym direction az trafi, to troche wolne, udało mi się zoptymalizowac, ale i tak gra delikatnie się przycina na ten ułamek sekundy kiedy bot musi np strzelić w góre by strzała przeleciała nad scianą i trafiła typa ktory jest za nią. Dodatkowo chciałbym aby mierzenie brało pod uwagę strzał z mniejszą siłą, co daje mi nowego loopa a tego juz nie chce bo rozwolni gre :/

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