如何从Java2D中获得最佳的图形性能

如何从Java2D中获得最佳的图形性能,java,swing,graphics,2d,java-2d,Java,Swing,Graphics,2d,Java 2d,这个问题不适用于LWJGL、JavaFX等库。这里的目标是确定如何从Java2D中获得最佳性能。更具体地说,如何从Java2D中获得最佳性能,以创建视觉上有吸引力但高效的2D游戏。我遇到过很多实践:直接在JFrame上绘图,覆盖JPanel或JComponent,提供一些不错的双缓冲策略,使用库(ehm),等等 在过去,我只是简单地重写了JPanel及其paintComponent方法,最后,它以稳定的35 FPS的速度运行!对于一个简单的自上而下的2D Java游戏来说,这并不是性能的巅峰(也

这个问题不适用于LWJGL、JavaFX等库。这里的目标是确定如何从Java2D中获得最佳性能。更具体地说,如何从Java2D中获得最佳性能,以创建视觉上有吸引力但高效的2D游戏。我遇到过很多实践:直接在JFrame上绘图,覆盖JPanel或JComponent,提供一些不错的双缓冲策略,使用库(ehm),等等

在过去,我只是简单地重写了JPanel及其paintComponent方法,最后,它以稳定的35 FPS的速度运行!对于一个简单的自上而下的2D Java游戏来说,这并不是性能的巅峰(也许是吧?)


那么,让Java2D性能每况愈下的最佳策略是什么呢?

如果您想使用Java的
Graphics2D
类来绘制性能良好的对象,我建议使用。它是从Java1.4开始提供的,并且使用硬件加速处理(如果可能的话)来呈现它的内容。它扩展了
java.awt.Image
,因此,如果您以前使用过
buffereImage
左右,就不会有太多的更改。但是使用这个类有一些棘手的事情。例如,在呈现其内容之前,您需要检查其是否仍然有效,但通常管理这些内容并不困难。但因此,您的应用程序可以获得相当好的性能提升,而无需更改大量代码。:)

这会给你很好的建议