-1

我目前正在从 GameDev 教程中学习,真正让我感到困惑的是,您光栅化成数组的 BufferedImage 是如何更新的。在我的代码中,我从未指定某个 BufferedImage 应该用于 BufferStrategy,我猜它会自行更改缓冲区,但代码仍然可以正常工作。

http://pastie.org/private/un1ep4wwrbsi0ecwmqc5w#15

我的意思是 ctrl+f 用于“图像”,您会看到参数“图像”永远不会被更新;仅创建一次,仅此而已。然而,当像素数组被更改(在不同的类中并复制到我发布的那个)时,这些更改会影响图像对象,然后由 Graphics 绘制。我到底在哪里告诉 JVM 将数组光栅复制回 BufferedImage(= 参数图像)?

4

1 回答 1

1

您不需要将数组复制回来。BufferedImage已经有了。:-)

即与实例BufferedImage image共享pixels数组。Game该行:

private int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();

....不复制任何数据,它只是分配一个对内部像素数据的引用image。任何更改pixels都将反映在image其中,反之亦然。

于 2014-05-28T15:09:01.117 回答