【发布时间】:2017-02-09 07:17:03
【问题描述】:
我正在制作一个 Java 游戏,当我绘制图形时,游戏会滞后很多。
我目前绘制图形的方式是制作一个BufferedImage,从中获取Graphics2D,然后做一大堆:
g2d.drawImage(loadedImages.getImage(),x,y,null);
将所有图像打印到BufferedImage 后,我将BufferedImage 绘制到屏幕上。
我在BufferedImage 上画了很多图像。有没有更好的方法可以加快绘画时间?
我对显卡和显卡了解不多。我应该使用显卡吗?我应该直接在屏幕上绘画吗?我应该使用与drawImage() 完全不同的东西吗?
【问题讨论】:
-
也许研究一下 OpenGL 是个好主意。您可以将它用于相同的目的(可能需要更多的努力),但它可以比
Graphics2D更好地加速。 -
我喜欢直接使用 LWJGL(轻量级 Java 游戏库,一个 OpenGL 包装器)——必须编写一个薄包装器,但它非常适合 2D ;-) 还有其他现有的游戏库,包括 Slick2D . Java 确实支持一些 2D 加速,但我总觉得它命中注定。
-
如需尽快获得更好的帮助,请发帖 SSCCE。在代码中生成“大量图像”。
-
在双缓冲组件中使用“背景”图像的唯一真正优势是,如果其中有一个不改变或很少改变的复杂场景。
标签: java optimization frame-rate