【发布时间】:2021-08-13 08:25:26
【问题描述】:
我到处寻找与我有同样问题的人,但似乎我是唯一遇到此错误的人。
所以我在 Java 中使用 Swing。我有一个类Player 可以绘制玩家的图像。但是,每次我尝试使用setTransform 旋转图像时,第二个播放器实例都会缩小两倍。
这是我绘制方法的代码:
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());
【问题讨论】:
-
您应该创建一个小示例,该代码甚至没有显示您提到的第二个“玩家”。同样,将转换重置为旧值也不起作用。
-
第二个播放器的代码与播放器实例的代码相同。 “同样将转换重置为旧值也不起作用”,我不知道该怎么做......
-
仿射变换 oldTransform = g.getTransform() .... g.setTransform(oldTransform)。必须查看其余代码才能理解问题
-
1) 为了尽快获得更好的帮助,edit 添加minimal reproducible example 或Short, Self Contained, Correct Example。 2) 例如,获取图像的一种方法是热链接到this Q&A 中看到的图像。例如。 this answer 中的代码热链接到嵌入在this question 中的图像。
标签: java image swing graphics2d affinetransform