我目前正在尝试旋转图像,然后在不旋转的顶部绘制图像。但是每当我使用时:
g2d.rotate(Math.toRadians(rot), (x+15), (y+15));
我随后绘制的每个图像也会旋转。有什么办法可以旋转一张图像而不旋转其余图像(这真的很难解释)。
这是我的绘画方法:

public void draw(Graphics2D g2d)
{
    move();
    if(bo.px==+1)rot--;
    if(bo.px==-1)rot++;
    g2d.rotate(Math.toRadians(rot), (x+15), (y+15));
    g2d.drawImage(img, x, y, null);//this should rotate
    g2d.drawImage(shine, x, y, null);//this shouldn't
}


提前致谢。

最佳答案

您可以保存原始变换,旋转并绘制第一个图像,然后在绘制第二个图像之前应用回原始变换。

尝试

AffineTransform originalTransform = g2d.getTransform();
g2d.rotate(Math.toRadians(rot), (x+15), (y+15));
g2d.drawImage(img, x, y, null);
g2d.setTransform(originalTransform);
g2d.drawImage(shine, x, y, null);

10-07 15:56