Skocz do zawartości

Zablokowane Obracanie do myszki z opóźnieniem


Egzekutor

Rekomendowane odpowiedzi

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

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

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...