我在javaFx中制作游戏。渲染游戏中实体的方式取决于其中一个名为“angle”的字段,如下所示:
gc.save();
gc.transform(new Affine(new Rotate(angle, getCenterX(), getCenterY())));
gc.drawImage(image, x, y);
gc.restore();
“Gc”是GraphicsContext。 getCenter方法将使用图像的高度和宽度。但是,图像无法正确呈现。我运行了一些测试,发现当我使用get Width方法时,它实际上返回了图像的高度。当我调用get Height方法时,它返回宽度。我的猜测是因为我使用的png图像相对于原始状态旋转了90度。但是,当我去预览并查看它们的大小时,似乎一切都很好。我尝试复制图像,但它并没有真正起作用。任何想法如何解决这一问题?我没有可验证的代码示例,因为我认为这个问题与png文件和javaFx的Image方法的属性更相关,而不是程序的逻辑。
这是可验证的代码示例:
import javafx.embed.swing.JFXPanel;
import javafx.scene.image.Image;
public class TestImage {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFXPanel jfxPanel = new JFXPanel();
Image BLUE01 = new Image("/blue01.png");
System.out.println("height : "+ BLUE01.getHeight());
System.out.println("wdith : "+ BLUE01.getWidth());
}
}
似乎问题来自不是我的代码,而是我对IDE的使用......事实证明,在我的资源文件夹中编辑或添加图像后,我需要在eclipse中单击“刷新”...