这个问题不适用于LWJGL,JavaFX等库。这里的目标是确定如何从Java2D中获得最佳性能。更具体地说,如何从Java2D中获得最佳性能,以创建视觉上吸引人且高效的2D游戏。我遇到了很多实践:直接绘制到JFrame上,覆盖JPanel或JComponent,overriding Canvas以提供一些不错的双缓冲策略,使用库(ehm)等。
过去,我只是简单地覆盖JPanel及其paintComponent方法,最后,它以35 FPS稳定运行!对于简单的自上而下的2D Java游戏而言,这并不是性能的巅峰(或者可能是?)。
那么,从Java2D中获取每一滴性能的最佳策略是什么?
答案 0 :(得分:3)
如果您想使用Java的Graphics2D
类来绘制性能良好的对象,我建议使用VolatileImage。它从Java 1.4开始提供,并使用硬件加速处理(如果可能)来渲染它的东西。它扩展了java.awt.Image
,因此如果您之前使用过BufferedImage
左右,则没有太多变化。但是使用这个类有一些棘手的事情。例如,在呈现其内容之前,您需要检查它是否仍然有效,但通常不是很难管理这些东西·但是因此您可以获得相当不错的性能提升,而无需更改大量代码。 :)
这个link应该会给你很好的建议。