I looked everywhere to see with anyone had the same problem than me but it seems I’m the only one getting this error.
So I’m in Java with Swing. I have a class Player
that draws an image of the player. However, each time I tried to use setTransform
to rotate my image, the second instance of player is scaled down by two.
Here is my code for the draw method:
AffineTransform transform = new AffineTransform(); transform.rotate(this.getOrientationRadians(), getX()+getWidth()/2,getY()+getHeight()/2); g.setTransform(transform); g.drawImage(image, (int)(getX()), (int)(getY()), null); g.setTransform(new AffineTransform());
Advertisement
Answer
By overwriting the transform of the Graphics
object you are also overwriting the scaling imposed by your system scale (which I suppose is set to 200%).
Either restrict to using Graphics2D::rotate
or pass the transform the drawImage
call.
AffineTransform transform = new AffineTransform(); transform.translate(getX(), getY()); transform.rotate(getOrientationRadians()); g.setTransform(transform); g.drawImage(image, transform, null);