Hey Leute,
Ich hab das Problem das ich ein spezielles BufferedImage immer und solange die S taste gedrueckt ist rotieren will.
Ich verwende dafuer bisher folgenden Code
Mein Bufferedimage lasse ich mit folgendem Code anzeigen
Jedoch verschiebt sich mein BufferedImage (wird nicht im Zentrum rotiert UND wird beim drehen verkleinert:
Unrotiert:
Wenn S gedrueckt wird:
zum vergleich basis und rotation:
Ich hab das Problem das ich ein spezielles BufferedImage immer und solange die S taste gedrueckt ist rotieren will.
Ich verwende dafuer bisher folgenden Code
Java:
public static BufferedImage rotateImageX(BufferedImage img, double angle) {
double sin = Math.abs(Math.sin(Math.toRadians(angle))), cos = Math.abs(Math.cos(Math.toRadians(angle)));
int w = img.getWidth(null), h = img.getHeight(null);
int neww = (int) Math.floor(w * cos + h * sin),newh = (int) Math.floor(h * cos + w * sin);
BufferedImage bimg = new BufferedImage(neww, newh,BufferedImage.TYPE_INT_ARGB);
Graphics2D g = bimg.createGraphics();
g.translate((neww - w) , (newh - h) );
g.rotate(Math.toRadians(angle), w / 2, h / 2);
g.drawRenderedImage(img, null);
g.dispose();
return bimg;
}
Mein Bufferedimage lasse ich mit folgendem Code anzeigen
Code:
if (down)
{
g.drawImage(rotateImageX(ship_idle,rotation), (int)pos.xpos - width, (int)pos.ypos- height , width , height , null);
rotation++;
}
Jedoch verschiebt sich mein BufferedImage (wird nicht im Zentrum rotiert UND wird beim drehen verkleinert:
Unrotiert:
Wenn S gedrueckt wird:
zum vergleich basis und rotation: