Rotacja grafiki w javie

0

Jak można obrócić obrazek o podany kąt, ale tylko obrazek wskazany przeze mnie?

g2d.rotate(Math.toRadians(gracz.kat),(int)gracz.getX()+ustawiacz_x+10,(int)gracz.getY()+ustawiacz_y+20);
			
g2d.drawImage(c.wczytaj_obraz("gracz1.png"),(int)gracz.getX()+ustawiacz_x, int)gracz.getY()+ustawiacz_y, null);


g2d.rotate(Math.toRadians(2),10,20);
			
g2d.drawImage(c.wczytaj_obraz("gracz2.png"),500,500,null);

Więc gdy obrócę obrazek gracz1 to gracz2 obraca się o ten sam kąt. Jak zrobić by się obracał tylko gracz1? Zamian kolejności wpisania nie wchodzi w grę :P

0

Dlaczego czuję, że gracz1 i gracz2 mają referencję do tego samego obrazka... coś mi mówi, że c.wczytaj_obraz zwraca referencję, która jest trzymana zarówno dla gracza1 i gracza2... sprawdź to za pomocą == powinno dać true.

0

Ty nie obracasz obrazka, tylko ustawienia graphics zmieniasz, ale ich później nie przywracasz.
powinieneś mieć w jakieś tablicy/liście wszystich graczy, i w pętli robić to w mniej więcej taki sposób

			// zapamiętujemy ustawienia
			AffineTransform tmp = g.getTransform();
			for(Gracz gracz : gracze)
			{
				g.translate(gracz.getX(), gracz.getY());
				g.rotate(Math.toRadians(gracz.getAngle()));

				gracz.drawMe(g);

				// i za każdym razem je przywracamy
				g.setTransform(tmp);
			}

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