我正在编写 Java 2D 游戏。我正在使用内置的 Java 2D 绘图库,在我从 JFrame 中的 Canvas 的 BufferStrategy 获得的 Graphics2D 上绘图(有时是全屏的)。BufferStrategy 是双缓冲的。重绘是通过计时器主动完成的。不过,我遇到了一些性能问题,尤其是在 Linux 上。
Java2D 有很多方法可以创建图形缓冲区和绘制图形,我只是不知道自己是否做对了。我一直在尝试 graphics2d.getDeviceConfiguration().createCompatibleVolatileImage,它看起来很有希望,但我没有真正的证据证明如果我将绘图代码切换到它会更快。
根据您的经验,在 Java 1.5+ 中将 2D 图形渲染到屏幕上的最快方法是什么?请注意,该游戏非常领先,因此我不想切换到完全不同的绘图方法,例如 OpenGL 或游戏引擎。我基本上想知道如何以最快的方式使用 Graphics2D 对象将内容绘制到屏幕上。