我正在尝试将 3D 阵列展平为 1D 阵列,用于我的游戏中的“块”系统。这是一个 3D 块游戏,基本上我希望块系统与 Minecraft 的系统几乎相同(但是,无论如何,这不是 Minecraft 克隆)。在我之前的 2D 游戏中,我使用以下算法访问了扁平数组:
Tiles[x + y * WIDTH]
但是,这显然不适用于 3D,因为它缺少 Z 轴。我不知道如何在 3D 空间中实现这种算法。宽度、高度和深度都是常数(宽度与高度一样大)。
只是x + y*WIDTH + Z*DEPTH
吗?我的数学很差,我刚刚开始 3D 编程,所以我很迷茫:|
PS。这样做的原因是我正在循环并通过索引从中获取很多东西。我知道一维数组比多维数组更快(出于我不记得的原因:P)。尽管这可能不是必需的,但我希望性能尽可能好:)