0

我正在用 Java 制作游戏并享受VolatileImage提供的加速。我想在我的游戏中加入一种效果,使物体在移开后停留在原来的位置并淡出,就像这个视频中描述的运动模糊模仿一样。该视频中涉及的方法涉及将屏幕清除(每帧发生)从不透明更改为部分透明。这种方法是完美的,只是它不适用于 VolatileImages,因为它们的内存内容可能随时丢失。

使用 VolatileImage。getSnapshot()解决了这个问题,因为您可以在帧之间保存图像内容以防丢失。但这意味着每帧都会创建一个新图像,如果我们假设分辨率为 1920x1080,那么每帧大约需要 8 MB 的内存分配。我希望有一种方法可以解决这个问题,或者通过某种方式将快照写入预分配的内存,或者通过其他方式实现这种效果。有什么建议么?

4

1 回答 1

0

我通过创建一个加速的 BufferedImage 解决了我的问题,如下所示:

private static BufferedImage renderImg = device.getDefaultConfiguration().
        createCompatibleImage(
                    device.getDisplayMode().getWidth(),
                    device.getDisplayMode().getHeight());
static {
    renderImg.setAccelerationPriority(1);
}
于 2013-04-24T00:48:46.037 回答