【发布时间】:2018-11-29 21:00:41
【问题描述】:
所以我正在用 Java Swing 和 awt 创建一个 2D 游戏。我想尽可能少地使用图形对象,基本上是创建一个图像缓冲区并将其写入并将其发送到画布以进行渲染。我的性能有限,因为我在树莓派上,而且我正在使用 java 及其库,因为大多数游戏库都不适用于 Raspberry Pi,而 Java 对我来说很容易。感谢您的任何回答。
【问题讨论】:
标签: java graphics buffer rendering
所以我正在用 Java Swing 和 awt 创建一个 2D 游戏。我想尽可能少地使用图形对象,基本上是创建一个图像缓冲区并将其写入并将其发送到画布以进行渲染。我的性能有限,因为我在树莓派上,而且我正在使用 java 及其库,因为大多数游戏库都不适用于 Raspberry Pi,而 Java 对我来说很容易。感谢您的任何回答。
【问题讨论】:
标签: java graphics buffer rendering
在您开始重新发明轮子(可能是整辆车)之前,您应该研究一下BufferStrategy,它为“分页翻转”算法提供了直接绘图功能。
BufferStrategy 是有限的,因为你不能将它与 Swing 组件混合使用,因为 Swing 使用不同的渲染方法。
您“可以”还使用几个 BufferedImages,它们充当页面,并手动交换它们,这基本上是 BufferStrategy 所做的任何事情,但如果您使用的是 Swing,Swing 已经是双缓冲的,所以你可能只是想看起来很酷。
我会“建议”从简单的事情开始,看看它会把你带到哪里,在你真正开始遇到问题之前不要尝试优化解决方案。
【讨论】:
BufferedImage 作为主要后备缓冲区并简单地绘制它直接放在JPanel 之类的东西上。如果您发现这会给您带来问题,请尝试使用BufferStrategy。