【问题标题】:How would I write to a buffer and draw it in Java canvas?我将如何写入缓冲区并在 Java 画布中绘制它?
【发布时间】:2018-11-29 21:00:41
【问题描述】:

所以我正在用 Java Swing 和 awt 创建一个 2D 游戏。我想尽可能少地使用图形对象,基本上是创建一个图像缓冲区并将其写入并将其发送到画布以进行渲染。我的性能有限,因为我在树莓派上,而且我正在使用 java 及其库,因为大多数游戏库都不适用于 Raspberry Pi,而 Java 对我来说很容易。感谢您的任何回答。

【问题讨论】:

    标签: java graphics buffer rendering


    【解决方案1】:

    在您开始重新发明轮子(可能是整辆车)之前,您应该研究一下BufferStrategy,它为“分页翻转”算法提供了直接绘图功能。

    BufferStrategy 是有限的,因为你不能将它与 Swing 组件混合使用,因为 Swing 使用不同的渲染方法。

    您“可以”还使用几个 BufferedImages,它们充当页面,并手动交换它们,这基本上是 BufferStrategy 所做的任何事情,但如果您使用的是 Swing,Swing 已经是双缓冲的,所以你可能只是想看起来很酷。

    我会“建议”从简单的事情开始,看看它会把你带到哪里,在你真正开始遇到问题之前不要尝试优化解决方案。

    【讨论】:

    • 你推荐哪种方法?
    • @DinamicDigital 这取决于,你想去做多少工作?我会从简单地使用开箱即用的 Swing 开始,虽然它使用被动渲染引擎,但它是最简单的起点,如果您愿意,可以使用 BufferedImage 作为主要后备缓冲区并简单地绘制它直接放在JPanel 之类的东西上。如果您发现这会给您带来问题,请尝试使用BufferStrategy
    • @DinamicDigital 但是除了渲染还有很多事情要做,良好的资源管理也很重要 - 请查看 this example 了解更多详细信息
    猜你喜欢
    • 1970-01-01
    • 2012-11-07
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    相关资源
    最近更新 更多