Witam, piszę swoją grę i postanowiłem dodać rotacje postaci za pomocą myszy. Niestety mam jeden problem, gdyż rotacja działa, ale wpływa na ruch postaci tzn. mój ludzik chodzi szybciej po dodaniu dokładnie tego kodu:
g2D.translate(Component.character.x, Component.character.y);
tak wygląda kod odpowiedzialny za rotacje obrazka:
if(Component.mousex - xAxis > 0 || Component.mousex - xAxis < 0){
slope = (double)(yAxis - Component.mousey) / (Component.mousex - xAxis);
radians = (( Math.atan2((Component.mousex - xAxis), (yAxis - Component.mousey))) );
}
g2D.translate(Component.character.x, Component.character.y);
g2D.rotate(radians, 20, 20);
g.drawImage(character, 0, 0, 40 ,40, null);
Component.mousex - x myszy na ekranie;
xAxis - Component.character.x + 20;
Ma ktoś jakiś pomysł dlaczego tak się dzieje?
Sprecyzuje jeszcze, że x i y postaci mają prawidłową prędkość, ponieważ kolizja działa, lecz to sam obraz postaci porusza się szybciej. Kiedy postać zatrzymuje się na przeszkodzie obrazek jest kilkaset pikseli dalej.