在java中加载spritesheet时如何防止我的FPS掉线?

时间:2014-10-18 17:10:46

标签: java frame-rate

嘿伙计们,我一直在进行java游戏编程,最近我遇到了一个问题。当我在java中加载一个相对较小的精灵表时,我的FPS从500变为250并使我的游戏非常滞后。如果有人知道如何让Java游戏变得更加迟钝并获得更好的FPS,那就太棒了!

    BufferedImage spriteSheet = ImageIO.read(new File(spriteSheetLocation));
    sprites = new BufferedImage[rows * columns];

    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < columns; j++) {
            sprites[(i * columns) + j] = spriteSheet.getSubimage(i * width,
                    j * height, width, height);
        }
    }

1 个答案:

答案 0 :(得分:0)

通常在开发游戏时,您cache所有sprites(或差不多),所以您只需在开始时加载一次。

回到我正在进行游戏开发的日子里,我正在使用缓存编辑器(很容易创建自己的编辑器,但如果你想节省时间,网上可能有很多)然后你将每个精灵存储在一个文件作为字节(序列化对象)。然后这个文件被缓存编辑器压缩,每个玩家都会下载一次并存储在计算机上的某个地方(他们不知道它已经完成,它由游戏处理)。

然后,当玩家必须加载一个新的精灵时,它已经被缓存在计算机上并且速度非常快。