我在javaFx中制作游戏。渲染游戏中实体的方式取决于其中一个名为" angle"的字段,如下所示:
gc.save();
gc.transform(new Affine(new Rotate(angle, getCenterX(), getCenterY())));
gc.drawImage(image, x, y);
gc.restore();
" GC"是GraphicsContext。 getCenter方法将使用图像的高度和宽度。但是,图像无法正确呈现。我运行了一些测试,发现当我使用获取宽度方法时,它实际上返回了图像的高度。当我调用 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());
}
}
答案 0 :(得分:0)
似乎问题来自不是我的代码,而是我对IDE的使用...事实证明,在我的资源文件夹中编辑或添加图像后,我需要点击"刷新"在日食......