0
我想提出一個遊戲,我已存儲的INT數組INT整數三維地圖的座標:如何獲得線性陣列
int width = 256;
int height = 256;
int depth = 64;
int[] map = new int[width * height * depth];
我需要能夠得到獲得X,Y,索引的z。我想出了目前的方法是:
private int getX(int blockID) {
return blockID % width;
}
private int getY(int blockID) {
return (blockID % depth)/height;
}
private int getDepth(int blockID) {
return blockID/(width * height);
}
用於獲取x和深度的方法似乎工作,但我不能得到的getY()正常工作,我不斷收到和ArrayIndexOutOfBoundsException異常類似下面:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at game.Level.updateLighting(Level.java:98)
at game.Level.generateMap(Level.java:58)
at game.Level.<init>(Level.java:21)
at game.mainClass.main(Minecraft.java:6)
請幫助,如果你知道如何做到這一點。
+1 「哥們」;也爲一個很好的答案;) – WaelJ
其效率不高 –
@stas謹慎詳細說明?在什麼方面,一個一維陣列的'w * h * d'元素比一個等效的三維陣列「效率更高」? –