将类似Minecraft的地图存储为JavaScript数组

问题描述 投票:1回答:1

我正在编写将3D空间转换为JavaScript数组,以便可以将其导出到JSON文件的地图编辑器。

每个地图都会有一个2D平面作为地面层(用户必须指定X和Y大小),然后要增加高度,用户可以按照X&Y网格在此2D平面的顶部放置块(类似于Minecraft。)>

我的想法是为每个Z层都有一个数组,并在其中填充有关哪些块放置在此处的信息。由于必须指定地图的X和Y大小,因此,一个简单的数组就可以解决问题,因为要读取地图,您只需为每个Z层数组循环并用其内容填充地图即可,该内容就是另一个数组。创建由地面图层的X和Y大小定义的行。

我知道您可以填充layer[165] = grassBlock之类的数组在声明它们之后,这将使索引165之前的所有内容为空,从而节省空间。但以JSON格式,该数组在到达此索引之前难道不会有164个零或空吗?

这甚至是存储3D空间的最有效方法吗?我正在尝试最小化地图大小并尽可能加快加载时间。

我正在编写将3D空间转换为JavaScript数组,以便可以将其导出到JSON文件的地图编辑器。每个地图都会有一个2D平面作为地面层(用户必须......>

javascript arrays performance 3d
1个回答
1
投票

如果您只有块/空,那么一位就足够了,您可以将单个Javascript类型的数组用于矩阵。

假设矩阵的大小为XYZ,则从坐标(x, y, z)到数组索引的转换可以是:

© www.soinside.com 2019 - 2024. All rights reserved.