在Javascript中将1D平铺地图数组拆分为2D分块数组的最佳方法是什么?

时间:2013-11-01 02:29:05

标签: javascript arrays multidimensional-array

我正在加载一个设置长度的1D数组,它将tile类型保存为int。但是,我的可见地图是以块[而不是2D [x] [y]数组)构建的。我有引擎和tile类/对象,以便使用Javascript构建地图。

我已经尝试了很多例子,似乎没有什么比较合适的,包括A-B到M-N的转换,刚刚拍摄了第一个图块并重复了几次。

var chunks = [];

for (var y0 = 0; y0 < B; y0 += N) {
    for (var x0 = 0; x0 < A; x0 += M) {
        var chunk = [];
        for (var yd = 0; yd < N; yd++) {
            var y = y0 + yd;
            chunk[yd] = [];
            for (var xd = 0; xd < M; xd++) {
                var x = x0 + xd;
                chunk[yd][xd] = mapdata[y * A + x];
            }
        }
        chunks.push(chunk);
    }
}

有没有更好的方法来转换数组输出?

这张地图快照显示了如何将TILED地图数据转换为JSON数组,并解释它比我之前发布的文本示例更好。

Example Map http://www.teonnyn.com/pictures/example.png

0 个答案:

没有答案