相关疑难解决方法(0)

如何在1D阵列中"展平"或"索引"3D阵列?

我试图在我的游戏中将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).即使这可能没有必要,我希望尽可能好的表现:)

.net c# arrays 3d flatten

28
推荐指数
7
解决办法
5万
查看次数

如何在Golang中创建一个三维数组

我正在尝试创建一个包含块的三维数组(如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)

有什么建议?

arrays go

4
推荐指数
2
解决办法
2847
查看次数

标签 统计

arrays ×2

.net ×1

3d ×1

c# ×1

flatten ×1

go ×1