Problem z translate

0

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.

0

Trochę za mało informacji, ale jeśli się dzieje coś takiego, to spróbuj wykorzystać inną zmienną np. od ekranu, a nie postaci bezpośrednio.

1 użytkowników online, w tym zalogowanych: 0, gości: 1