Skocz do zawartości

rotacja broni razem z postacia


waxx

Rekomendowane odpowiedzi

siema

 

 

 

 

odpalilem sobie z ciekawosci gma i ze jako nigdy nie robilem zadnego shootera postanowilem poprobowac w gmie, ktory fajne ulatwia robote skodzic shooterka prostego 

 

ale prosty pewnie dla was problem: otoz po prostu obracam postac myszka i bron ktora jest osobnym spritem rowniez obraca sie razem z postacia, ale jako ze zmienia sie kat to i x i y broni powinno sie odpowiednio zmienic jednak za cholere nie wiem jak

 

 

 

 

poszukalem troche w przykladach, sporo ich jest ale poprosilbym kogos zeby mi raz wytlumaczyl i bedzie k

 

z przykladu psichixa:

 

draw_sprite_ext( Spr_Miecz, 0, x + lengthdir_x( 14, image_angle - 70 ) + 6, y + lengthdir_y( 14, image_angle - 70 ) + 6, image_xscale, image_yscale, image_angle + sword_angle +45 - reldir_attack + 10, c_black, 0.3 );

 

 

 

 

 

i teraz jak ktos by mogl cos powiedziec nt drugiego argumentu w lengthdir

 

first: co to jest image_angle? != direction? no i skad te 70? [z dupy?], no i jeszcze w pierwszym argumencie czternastka - to jakis origin broni wzgledem postaci, ale pod np. katem zerowym czy cus?

Odnośnik do komentarza
Udostępnij na innych stronach

lengthdir_x i -y zwracają dane współrzedne po przesunięciu o odległość w px (arg1) w danym kierunku (arg2). Te dodatkowe wartości daje się w zależności od tego jak "ustawiony" jest sprite (przodem do góry, na dółczy jeszcze inaczej) oraz pod jakim kątem ma być ustawiony do postaci.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
draw_sprite_ext(

Spr_Miecz, 0, // sprajt miecza

x + lengthdir_x( 14, image_angle - 70 ) + 6, // to jest pozycja względem pozycji gracza. Dokładniejsze wyjaśnienie dalej *

y + lengthdir_y( 14, image_angle - 70 ) + 6,

image_xscale, image_yscale, // skala

image_angle + sword_angle +45 - reldir_attack + 10, // kąt obrotu: obrót gracza + obrót miecza + 45 (odchylenie na obrazku) + aktualny kierunek względny w fazie ataku

c_black, 0.3 // kolor czarny i przezroczystość na 30% bo to cień

);

 

* wyjaśnienie:

GML
x + lengthdir_x( // pozycja postaci przesunięta o "wektor" ...

14, // ... o długości 14 pikseli ...

image_angle - 70 ) // ... i kącie obrotu postaci odejmując magiczne 70 sam nie pamiętam czemu akurat tyle, ale ma to coś wspólnego z kierunkiem rąk

+ 6 // dodanie magicznych 6 pikseli przesunięcia cienia</span>

 

Mam nadzieję że wyjaśnienie pomogło :)

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