我正在尝试将3D数组压缩为1D数组,以便在我的游戏的“区块”系统中使用。这是一个3D方块游戏,基本上我希望该区块系统几乎与Minecraft的系统相同(但无论如何都不是Minecraft的克隆)。在我之前的2D游戏中,我使用以下算法访问了已压平的数组:
Tiles[x + y * WIDTH]
然而,这显然无法在三维空间中使用,因为缺少Z轴。我不知道如何在三维空间中实现这种算法。宽度、高度和深度都是常数(而且宽度与高度相同)。
是不是只需要x + y * WIDTH + Z * DEPTH
?我对数学很差,而且我刚开始学习3D编程,所以我很迷惑 :|
PS. 这是因为我经常通过索引循环和获取数组中的内容。我知道一维数组比多维数组更快(出于某些原因我记不清了 :P)。即使这可能不是必要的,我仍希望尽可能获得良好的性能 :)