我正在編程一個minecraft類型的遊戲。如何在Javascript中正確聲明和調用3維地圖?
基本上我有我的X,Y,Z和塊類型。
如何聲明這是最好的方式,所以當我輸入XYZ座標時,塊的類型被返回?
E.G
function block(x, y, z, type) {
this.x = x;
this.y = y;
this.z = z;
this.type = type;
}
var map = new Array();
map[0] = new Array();
map[0][0] = new Array();
map[0][0][0] = new Block(0,0,0,grass);
map[0][0][1] = new Block(0,0,1,stone);
....
//hundreds of times later
ctx.drawImage(map[myPositionX][myPositionY][myPositionZ].type);
我似乎無法滿腦子都在此就如何做到這一點沒有它越來越混亂。
我可以只用對象嗎?我必須擁有3D陣列嗎?我不明白這一點
UPDATE
這真的是這樣做的正確方法?
//Map
function Block(x, y, z, type) {
this.x = x;
this.y = y;
this.z = z;
this.type = type;
}
var map = [];
for(var i = 0; i < 100; i++){
map[i] = [];
for(var j = 0; j < 100; j++){
map[i][j] = [];
for(var k = 0; k < 10; k++){
map[i][j][k] = new Block(i,j,k,"neutral");
}
}
}
在您使用的陣列提供的代碼。這是做到這一點的一種方法。如果你覺得它舒適,去這個 – Weedoze
我不喜歡做數組的原因之一是我必須從0,0,0開始,並且不能跳進,比如說142,156,123;只有當我定義了一切。定義這樣的事情需要很長的時間。沒有其他更好的方法嗎? –