Skocz do zawartości

Rysowanie HUDa a view_angle


JerryJohn

Rekomendowane odpowiedzi

Witam, mam pewien problem, otóż:

 

Zmienia się view_angle[0]:

GML
view_angle[0] -= ( (view_wport[0]/2 ) - window_mouse_getx())*0.1;

window_mouse_set( (view_wport[0]/2 ) ,0);

 

a obiekt oHUD przyjmuje:

GML
x = view_xview[0];

y = view_yview[0];

 

oraz origin jego sprite'a znajduje się w punkcie (0,0).

 

Efekt jest taki że obraca się razem z viewem, więc doszedłem do wniosku że HUD trzeba obrócić o kąt przeciwny do kąta view_angle[0], sęk w tym że jego origin jest w (0,0), a zdaje się view jest obracany względem jego środka (?), więc trzeba to obrócić jakoś inaczej, tudzież skorygować położenie rysowania HUDa i tutaj zwracam się z prośbą o pomoc bo nie mam pojęcia jak ;)

 

Pozdrawiam

Odnośnik do komentarza
Udostępnij na innych stronach

Działa ładnie, tylko że jedynie jeśli chodzi o rysowanie sprite, sam obiekt dalej jest obrócony razem z view, przez co nie działają eventy typu Left Pressed itp (przynajmniej nie tak jak powinny), mam nadzieje że wiadomo co mam na myśli ;)

 

Podejrzewam że trzeba cały obiekt odpowiednio przesunąć i obrócić, samo rysowanie nie wystarczy :)

Odnośnik do komentarza
Udostępnij na innych stronach

Działa ładnie, tylko że jedynie jeśli chodzi o rysowanie sprite, sam obiekt dalej jest obrócony razem z view, przez co nie działają eventy typu Left Pressed itp (przynajmniej nie tak jak powinny), mam nadzieje że wiadomo co mam na myśli ;)

 

Podejrzewam że trzeba cały obiekt odpowiednio przesunąć i obrócić, samo rysowanie nie wystarczy :)

A dodałeś to co w drawie też do stepu?
Odnośnik do komentarza
Udostępnij na innych stronach

Udało mi się znaleźć rozwiązanie.

Dla potomnych:

GML
x = view_xview[0] + view_wview[0]/2 + lengthdir_x(x_offset-view_wview[0]/2,-view_angle[0]) + lengthdir_x(y_offset-view_hview[0]/2,-view_angle[0]-90);

y = view_yview[0] + view_hview[0]/2 + lengthdir_y(x_offset-view_wview[0]/2,-view_angle[0]) + lengthdir_y(y_offset-view_hview[0]/2,-view_angle[0]-90);

image_angle = -view_angle[0];

Odnośnik do komentarza
Udostępnij na innych stronach

Udało mi się znaleźć rozwiązanie.

Dla potomnych:

GMLx = view_xview[0] + view_wview[0]/2 + lengthdir_x(x_offset-view_wview[0]/2,-view_angle[0]) + lengthdir_x(y_offset-view_hview[0]/2,-view_angle[0]-90);

y = view_yview[0] + view_hview[0]/2 + lengthdir_y(x_offset-view_wview[0]/2,-view_angle[0]) + lengthdir_y(y_offset-view_hview[0]/2,-view_angle[0]-90);

image_angle = -view_angle[0];

 

Wklej cały kod jeśli możesz co w czym masz,bo ja mam ten sam problem od wieków i nie ogarniam a wygląda to lipnie jak się HUD obraca z view`em. :sp_ike:

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