我实际上正在使用 JavaFX 编写游戏“Diablo”的“简单”版本。
目前屏幕尺寸为绝对 800x600,一切正常。现在我们的团队希望在每个桌面上使用全屏。
我的问题是:我们使用绝对尺寸为 25x25 的墙壁、地板等图像。如果我们想在全屏模式下工作,我们需要缩放它们。
但据我所知,您只能缩放 ImageView 或 BufferedImage。当然,我们正在重复使用这些图像。例如墙壁纹理在 Pane 上出现超过 20 次。对于图像来说这很容易,因为您可以一次又一次地使用它,但是您需要 20 个 ImageView 才能完成同一件事。
屏幕大约每 0.2 秒更新一次,因此我们不能总是缩放所有 ImageView。
我的想法是:
- HashMap 中有很多缩放的 ImageView(性能不佳)
- 在游戏开始时将所有原始图像的大小调整到新的资源目录中(糟糕的存储解决方案 - 重复的图像)
我确信,有更好的解决方案和智能标准解决方法,但我还没有找到。
感谢您的每一次帮助, 裁缝杜登
最佳答案
好吧,我自己找到了答案。像往常一样简单:
Image myImage = new Image("img.png", 15, 20, false false);
在加载过程中将图像缩放至15x20..
关于JavaFX 图像缩放和重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34556296/