我正在开发游戏,正在使用大量的块来存储已加载的块。当前,当玩家生成时,我正在进行地形生成。有什么可能的方式,只要我觉得合适,就可以在块数组中创建新的Chunk。长话短说,当玩家走到不生成块的区域时,我想在块数组中初始化一个新值,而不必在课程开始时初始化该Chunk。

chunks = new Chunk[chunkCounter];
chunks[chunkCounter] = new Chunk();
chunkCounter++;


每次需要生成新的Chunk时,都需要执行类似的操作,即在数组中创建新Chunk的过程中,而不必事先声明数组的大小。

提前致谢。

最佳答案

是的,你可以这么做!
但是在此之前,您需要定义块数组的总大小(假设为100)。

块=新块[100];

您不需要立即对其进行初始化。当玩家进入该块时,您可以对其进行初始化。

chunks[chunkCounter] = new Chunk();
chunkCounter++;


但请注意,您无法做

chunks = new Chunk[chunkCounter];
chunks[chunkCounter] = new Chunk();
chunkCounter++;


像第一个一样将创建一个大小为chunkCounter的数组,可用索引为0-(chunkCounter-1),因此您的chunks[chunkCounter] = new Chunk();将抛出IndexOutofBoundException

同样,您不能动态调整数组大小。如果要使用List代替。

07-26 02:14