Pablo-GM Opublikowano 21 Grudnia 2012 Udostępnij Opublikowano 21 Grudnia 2012 Witam dziś kolejny problem z serii banał ... Mam obiekt oStrzałka , który powinien się obracać w stronę statycznego obiektu - oCheck . Kod w strzałce wygląda tak : GML Create Event: execute code: image_alpha=0.5 image_angle=direction End Step Event: execute code: direction=point_direction(x,y,oCheck.x,oCheck.y) Draw Event: execute code: draw_sprite_ext(sprite_index,image_index,view_xview[0]+280,view_yview[0]+240,ima ge_xscale,image_yscale,direction,image_blend,image_alpha); Mimo tego kodu strzałka ustawia się tylko raz - po włączeniu aplikacji . Jak stworzyć płynną zmiane kierunku strzałki względem oCheck na mapie ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
szmalu Opublikowano 21 Grudnia 2012 Udostępnij Opublikowano 21 Grudnia 2012 image_angle=direction musi też być w end step, inaczej wykona się raz. EDIT: sorry, nie o to ci chodziło. EDIT2: chociaż nie, tak czy siak musi to być w jakimś stepie, a jeśli chcesz płynną zmianę kierunku to skorzystaj z pętli, niech direction się dodaje/odejmuje, dopóki nie będzie równe point_direction. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 21 Grudnia 2012 Autor Udostępnij Opublikowano 21 Grudnia 2012 Z tego co ja się orientuje to step jest wykonywany co sekunda , także Twoje działania nijak się do tego mają : / Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 21 Grudnia 2012 Udostępnij Opublikowano 21 Grudnia 2012 Step jest wykonywany co step, czyli room_speed FPS razy na sekundę. By zrozumieć jak rozwiązać twój problem wystarczy Ci to w step: GML if(direction<point_direction(x,y,oCheck.x,oCheck.y)){direction+=1}else{direction-=1} Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 21 Grudnia 2012 Autor Udostępnij Opublikowano 21 Grudnia 2012 Niestety , Twój kod powoduje tylko i wyłącznie jeden obrót strzałki . Od początkowego zwrotu sprita czyli ' -> ' , obraca się do momentu skierowania groty w stronę oCheck . Problem dalej tkwi w tym , że jeżeli ja jako player zmienię moją pozycję to strzałka nie zmieni swojego zwrotu na odpowiedni . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 21 Grudnia 2012 Udostępnij Opublikowano 21 Grudnia 2012 -_- Coraz bardziej mam problemy ze rozumieniem ludzi na tym forum. Może wywal image_angle=direction z create i daj w end step? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
kaszan88 Opublikowano 22 Grudnia 2012 Udostępnij Opublikowano 22 Grudnia 2012 Możliwe, że masz dużą mapę. I strzałka faktycznymi współrzędnymi jest całkiem gdzie indziej niż view_xview[0]+280 i view_yview[0]+240. Powinno być albo tak: direction =point_direction(view_xview[0]+280,view_yview[0]+240,oCheck.x,oCheck.y); albo x = view_xview[0] + 280; y = view_yview[0] + 240; direction = point_direction(x,y,oCheck.x,oCheck.y); draw_sprite_ext(sprite_index,image_index,view_xview[0]+280,view_yview[0]+240,ima ge_xscale,image_yscale,direction,image_blend,image_alpha); W dodatku nie masz średników i już mi się to nie podoba :lol: No i może też masz więcej niż jeden obiekt typu oCheck. Wtedy strzała pokaże obrót do najstarszego z obiektów. Trzeba się nauczyć debugować, bo to nie jest wcale skomplikowane. Np. zmienić oCheck.x,oCheck.y na mouse_x, mouse_y, albo dać więcej niż jedną strzałkę. :) Post edytowany 500 razy xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Exigo Opublikowano 22 Grudnia 2012 Udostępnij Opublikowano 22 Grudnia 2012 Może sprawdź jak zachowa się to: GML return ((((argument0 - argument1) mod 360) + 540) mod 360) - 180; Ten skrypt ("roznica") zwróci ci różnicę dwóch kątów. GML strzalka_dir += roznica(cel_dir, strzalka_dir ) * .05; Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Pablo-GM Opublikowano 22 Grudnia 2012 Autor Udostępnij Opublikowano 22 Grudnia 2012 Bingo Kaszan! Chodziło o ustawienie pozycji strzałki w stepie, dziękuje :thumbsup: 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ę