我试图在我的游戏中将3D阵列压平为1D阵列中的"块"系统.这是一个3D块游戏,基本上我希望块系统几乎与Minecraft的系统相同(但是,这不是Minecraft克隆的任何措施).在我以前的2D游戏中,我使用以下算法访问了扁平化数组:
Tiles[x + y * WIDTH]
Run Code Online (Sandbox Code Playgroud)
然而,这显然不适用于3D,因为它缺少Z轴.我不知道如何在3D空间中实现这种算法.宽度,高度和深度都是常量(宽度和高度一样大).
是x + y*WIDTH + Z*DEPTH吗?我的数学非常糟糕,我只是开始进行3D编程,所以我很丢失:|
PS.这样做的原因是我循环并从索引中获取相当多的东西.我知道1D阵列比多维阵列更快(我记得的原因是:P).即使这可能没有必要,我希望尽可能好的表现:)
我正在尝试创建一个包含块的三维数组(如rubiks-cube).
我尝试了很多东西,但我无法让它发挥作用.
func generateTiles(x int, y int, z int) [][][]*tile{
var tiles [][][]*tile
// Something here
// resulting in a x by y by z array
// filled with *tile
return tiles
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?