ulvgaar Opublikowano 14 Maja 2013 Udostępnij Opublikowano 14 Maja 2013 Chciałbym zrobic top down shootera z celowaniem myszka. Problem sprawiło mi to że GM ma inaczej ustawioną oś y w środowisku 3d i 2d. Jak zrobic aby postać obracała się w kierunku myszki? Jak wogole GM czyta polozenie myszki - wspolrzedne sa od widoku, czy od wielkosci pokoju? Udało mi się cel osiągnąć, ale przy pokoju większym niz widok wszystko sie psuje. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 14 Maja 2013 Udostępnij Opublikowano 14 Maja 2013 Funkcja point_direction(x,y,mouse_x, mouse_y) zwraca kierunek, w którym należy się poruszać z punktu [x,y] do [mouse_x,mouse_y] (pozycja myszy) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ulvgaar Opublikowano 14 Maja 2013 Autor Udostępnij Opublikowano 14 Maja 2013 Jak wspomniałem, chodzi o srodowisko 3d w ktorym osie sa odwrocone (nie mam pojecia skad u tworcow taki pomysl). Taka komenda nie działa po prostu jak zadeklrujemy 3d. Udalo mi sie zrobic zastepujac mouse_y na (room_height - mouse_y). Wtedy postac ladnie obraca sie za kursorem. Natomiast przy zwiekszeniu pokoju te wspolrzedne oczywiscie znow nie pasuja i kombinowalem jak to obliczyc, ale jestem w kropce. Szukalem w helpie gm jak odnosi sie pozycja kursora czy w/g view, czy wielkosci rooma, wtedy mialbym do czego odniesz obliczenia. EDIT: dokopałem się ze to polozenie rooma, wiec z teori (room_height - mouse_y) powinno działac nawet przy zmianie view... no ale nie działa :< Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Amaterasu Opublikowano 14 Maja 2013 Udostępnij Opublikowano 14 Maja 2013 Znalazłem kilka funkcji w dokumentacji: display_mouse_get_x() Returns the x-coordinate of the mouse on the display. display_mouse_get_y() Returns the y-coordinate of the mouse on the display. display_mouse_set(x,y) Sets the position of the mouse on the display to the indicated values. window_mouse_get_x() Returns the x-coordinate of the mouse in the window. window_mouse_get_y() Returns the y-coordinate of the mouse in the window. window_mouse_set(x,y) Sets the position of the mouse in the window to the indicated values. window_view_mouse_get_x(id) Returns the x-coordinate of the mouse with respect to the view with index id. window_view_mouse_get_y(id) Returns the y-coordinate of the mouse with respect to the view with index id. window_view_mouse_set(id,x,y) Sets the position of the mouse with respect to the view with index id. window_views_mouse_get_x() Returns the x-coordinate of the mouse with respect to the view it is in (same as mouse_x). window_views_mouse_get_y() Returns the y-coordinate of the mouse with respect to the view it is in (same as mouse_y). window_views_mouse_set(x,y) Sets the position of the mouse with respect to the first view that is visible. Pierwsze trzy odnoszą się do całego ekranu, czyli pozycja myszy względem lewego górnego rogu monitora. Kolejne trzy - pozycja myszy względem lewego górnego rogu okna gry. Ostatnie sześć - pozycja myszy względem pozycji view, w którym się znajduje. Przy czym window_views_mouse_get_x() = mouse_x, window_views_mouse_get_y() = mouse_y Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ulvgaar Opublikowano 14 Maja 2013 Autor Udostępnij Opublikowano 14 Maja 2013 Dzięki, to powinno pomoc! Jak to zadziała wrzuce od razu pełne rozwiązanie. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
I am Lord Opublikowano 14 Maja 2013 Udostępnij Opublikowano 14 Maja 2013 point_direction(x,y,mouse_x, -mouse_y) odwracasz mouse_y i problem z głowy Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ulvgaar Opublikowano 14 Maja 2013 Autor Udostępnij Opublikowano 14 Maja 2013 Udało się. direction = point_direction((window_get_width()/2),(window_get_height()/2) , window_mouse_get_x(), window_mouse_get_y()) Kursor w 3D nie ma położenia, gra wariuje kiedy porownujemy polozenie do jakiego obiektu(ktory w 3d ma juz 3 wspolrzedne a nie 2). Powyzsze rozwiazanie ma sens oczywiscie tylko wtedy kiedy postac jest zawsze w srodku ekranu, w przypadku mojej gry na szczescie tak jest. Dziekuje jeszcze raz za pomoc. Pozdrawiam Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ALT Opublikowano 15 Maja 2013 Udostępnij Opublikowano 15 Maja 2013 Jeżeli chciałbyś w przyszłości określić prawdziwe położenie myszki w środowisku 3D to polecam ci przestudiować to i to 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ę