我正在开发一款游戏,我正在使用一系列Chunks来存储加载的块。目前,当播放器产生时,我正在研究地形生成。有没有可能的方法,只要我看到拟合,我就可以在块数组中创建一个新的块。简而言之,当玩家走到一个没有生成块的区域时,我想在块数组中初始化一个新值,而不必在类的开头初始化该Chunk。
chunks = new Chunk[chunkCounter];
chunks[chunkCounter] = new Chunk();
chunkCounter++;
每次需要生成一个新Chunk时,我需要做类似这样的事情,我在数组中创建一个新的Chunk而没有先前声明的数组大小。
提前致谢。
答案 0 :(得分:1)
是的,你可以做到! 但在此之前,您需要定义块数组的总大小(假设为100)。
Chunk chunks = new Chunk [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
。