Egzekutor Opublikowano 1 Stycznia 2010 Udostępnij Opublikowano 1 Stycznia 2010 Witam! Potrzebuję zrobić do gry obracanie się bohatera w kierunku myszki z małym opóźnieniem. Próbowałem robić już to tym dosyć długim algorytmem: GML DocKier = point_direction(x,y,mouse_x,mouse_y); OdwrKier = (DocKier + 180) mod 360; if DocKier > OdwrKier { if direction <= DocKier && direction >= OdwrKier { Mnoznik = 1; } else { Mnoznik = -1; } } else if direction >= DocKier && direction <= OdwrKier { Mnoznik = -1; } else { Mnoznik = 1; } if round(direction/5) != round(DocKier/5) { direction += Mnoznik*room_speed*0.2; } Obracanie działa jak należy ale kiedy podniosę room_speed*0.4 wtedy bohater porusza się co kilka pixeli a czasem zaczyna drgać nie wiedząc gdzie jest bliższy direction. Prosiłbym o poprawienie tego algorytmu lub jak się komuś chce, napisania nowego :) Proszę o jak najszybsze rozwiązanie, będę bardzo wdzięczny :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Slash (Pental) Opublikowano 1 Stycznia 2010 Udostępnij Opublikowano 1 Stycznia 2010 Dobra, cofam to co napisałem: GML DocKier = point_direction(x,y,mouse_x,mouse_y); OdwrKier = (DocKier + 180) mod 360; if DocKier > OdwrKier { if direction <= DocKier && direction >= OdwrKier { Mnoznik = 1; } else { Mnoznik = -1; } } else if direction >= DocKier && direction <= OdwrKier { Mnoznik = -1; } else { Mnoznik = 1; } if round(direction/5) != round(DocKier/5) { if ( Mnoznik ) direction = min( DocKier, direction + Mnoznik*room_speed*0.2 ); else direction = max( DocKier, direction + Mnoznik*room_speed*0.2 ); } Powinno działczyć. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 1 Stycznia 2010 Autor Udostępnij Opublikowano 1 Stycznia 2010 Prawie działa dobrze. Czasem jednak przeskakuje o 40 jak nie więcej pixeli. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Slash (Pental) Opublikowano 1 Stycznia 2010 Udostępnij Opublikowano 1 Stycznia 2010 https://gmclan.org/index.php?sciagnijplik=170 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Egzekutor Opublikowano 2 Stycznia 2010 Autor Udostępnij Opublikowano 2 Stycznia 2010 Ok, dzięki. Działa dobrze :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi