Skocz do zawartości

Obrót obiektu w kierunku myszki i solid


Matrix_

Rekomendowane odpowiedzi

Witam, mam pytanie otóż korzystam z obracania się w kierunku celownika:

GML
direction=point_direction(x,y,mouse_x,mouse_y) image_angle=direction

 

Mój bohater wygląda [powiedzmy że tak:]

2e4al3a.png

 

Podczas obotu, po 45' jest tak:

29nyyx0.png

 

I w tedy trzeba powrócić do 0' lub 270' aby móc wyjść ze ściany....

Jak tego uniknąć ?

 

Według mnie powinno byc to mniej więcej tak, że sprite obiektu obraca się w kwadracie, a kwadrat się nie obraca. Przez co nie było by tego problemu...

[edit]

Jakoś tak:

sfl2zl.png

Ale Problem by był z zrobieniem tego kwadratu, ciężko by było wyznaczyć najdłuższa długość i szerokość :/

Odnośnik do komentarza
Udostępnij na innych stronach

Ten kwadrat nazywa się AABB (Axis Aligned Bounding Box). Tutaj coś znalazłem: http://stackoverflow.com/questions/6657479...-rotated-sprite

 

@EDIT We właściwościach sprite nawet chyba da się to ustawić. Collision mask na rectangle czy coś takiego.

 

Niestety ta maska obraca się również z objektem. Chyba że jest coś, co tylko obraca grafikę, sam sprite, bez maski itp :/

Odnośnik do komentarza
Udostępnij na innych stronach

Obracając image_angle obracasz także maską kolizyjną. Zrób sobie własną zmienną od obracania spritem i wpisz ją w draw_sprite_ext() w parametrze rot. A samo image_angle pozostaw na 0. Wyłącz precise collision checking.

Dzięki, z ta maską to wiedziałem...

GML
draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,obrot,image_blend,image_alpha)

image_angle nie muszę wpisywać ?

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