管理经常使用的大型3D阵列

时间:2014-05-11 11:42:03

标签: java arrays 3d

我正在尝试制作视频游戏。由3D块组成的随机生成的世界,以及栖息在其中的各种生物。简单的2D图形,基于刻度的时间。我试图生成一个像这样的简单测试世界:

        World currentWorld = new World(24576, 24576, 150);

    for (int ix = 0; ix < currentWorld.worldArray.length; ix++) {
        for (int iy = 0; iy < currentWorld.worldArray[0].length; iy++) {
            for (int iz = 0; iz < currentWorld.worldArray[0][0].length; iz++) {
                currentWorld.worldArray[ix][iy][iz] = new Element(random.nextInt(10));
                System.out.println(currentWorld.worldArray[ix][iy][iz].ID);
            }
        }
    }

我收到了这个错误:

Exception in thread "Display" java.lang.OutOfMemoryError: Java heap space at cz.sargon.realms.world.World.<init>(World.java:11)

我理解错误意味着我用完了Java的“工作”内存,用于临时存储当前正在使用的数据。现在,我如何以某种方式存储这个世界并在以后使用它?每次我想渲染一些东西时我都需要阅读它,并且每隔几个滴答一次检查一些生物的AI(我计划世界上的每个生物每隔几个滴答一次检查它的周围环境并以适当的方式做出反应它的情况)。

0 个答案:

没有答案