Hallo,
ich beschäftige mich zur Zeit ein wenig mit einem kleinen Rundenstrategiespiel.
Dabei bin ich im Augenblick so weit, dass eine Einheit (ein .png Bild) über ein schachbrettartiges Spielfeld gesteuert wird.
(gesteuert wird über mehrere Buttons, die Pfeilbilder als ImageIcons haben, damit man die Richtung erkennen kann)
Nun wollte ich es so machen, dass die Einheit nicht nur in eine Richtung schaut, sondern sich immer passend zur "Fahrtrichtung" dreht. Mein erster Gedanke war einfach 8 Bilder der Einheit für alle Richtungen zu erstellen. Das würde mir aber bei mehreren Einheiten etwas zu aufwendig. Daher mein Gedanke das Bild einfach zu drehen.
Der Code Abschnitt dafür sieht im Augenblick so aus:
(eins ist die Instanz meiner "Einheit" Klasse)
Das Problem ist, dass ich vorher bei drawImage die Koordinaten für die Position der Einheit angegeben habe.
Die Frage ist nun, wie ich das jetzt machen soll, sprich gleichzeitig rotieren und Positionsangabe?
Vielen Dank!
ich beschäftige mich zur Zeit ein wenig mit einem kleinen Rundenstrategiespiel.
Dabei bin ich im Augenblick so weit, dass eine Einheit (ein .png Bild) über ein schachbrettartiges Spielfeld gesteuert wird.
(gesteuert wird über mehrere Buttons, die Pfeilbilder als ImageIcons haben, damit man die Richtung erkennen kann)
Nun wollte ich es so machen, dass die Einheit nicht nur in eine Richtung schaut, sondern sich immer passend zur "Fahrtrichtung" dreht. Mein erster Gedanke war einfach 8 Bilder der Einheit für alle Richtungen zu erstellen. Das würde mir aber bei mehreren Einheiten etwas zu aufwendig. Daher mein Gedanke das Bild einfach zu drehen.
Der Code Abschnitt dafür sieht im Augenblick so aus:
Code:
eins.img = getToolkit().getImage("images/Einheiten/Panzer/Panzer.png");
Graphics2D g2d = (Graphics2D) g;
AffineTransform aft = new AffineTransform();
aft.rotate(Math.toRadians(90));
g2d.drawImage(eins.img, aft, null);
Das Problem ist, dass ich vorher bei drawImage die Koordinaten für die Position der Einheit angegeben habe.
Die Frage ist nun, wie ich das jetzt machen soll, sprich gleichzeitig rotieren und Positionsangabe?
Vielen Dank!