我正在 JavaScript 和 HTML5 Canvas 中试验 Isometric Tile Map。我将 Tile Map 数据存储在 JavaScript 2D 数组中。
// 0 - Grass
// 1 - Dirt
// ...
var mapData = [
[0, 0, 0, 0, 0],
[0, 0, 1, 0, 0,
...
]
并画
for(var i = 0; i < mapData.length; i++) {
for(var j = 0; j < mapData[i].length; j++) {
var p = iso2screen(i, j, 0); // X, Y, Z
context.drawImage(tileArray[mapData[i][j]], p.x, p.y);
}
}
但是这个函数意味着所有瓦片Z轴都等于零。
var p = iso2screen(i, j, 0);
也许有人有想法以及如何做mapData[0][0]
Z轴等于3的事情;mapData[5][5]
Z轴等于5;?
我有想法:为草、污垢编写函数并将此函数存储到 2D 数组并绘制和稍后mapData[0][0].setZ(3);
。但是为每个图块编写函数是个好主意吗?