これは、私が使用している二重配列です
public int[][] MAP = { { 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8 },
{ 8, 8, 9, 9, 8, 8, 8, 8, 8, 8, 8 },
{ 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8 },
{ 8, 8, 8, 9, 9, 8, 8, 8, 8, 8, 8 },
{ 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8 },
{ 8, 8, 8, 9, 9, 9, 8, 8, 8, 8, 8 },
{ 8, 8, 9, 9, 9, 8, 8, 8, 8, 8, 8 },
{ 8, 8, 8, 9, 9, 9, 8, 8, 8, 8, 8 },
{ 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8 },
{ 8, 8, 8, 8, 8, 9, 9, 9, 8, 8, 8 },
{ 9, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8 },
{ 9, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8 },
{ 9, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8 },
{ 9, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8 },
{ 9, 8, 8, 8, 8, 8, 9, 9, 9, 8, 8 } };
私の問題は、対応する画像をロードするためにそれを使用しようとすると、y = 12 のときに範囲外であるというエラーが表示されることです。
Image[][] displayedMap = new Image[MAP[0].length][MAP.length];
public Town() {
System.out.println("Map len" + MAP.length);
for (int x = 0; x < MAP[0].length; x++) {
for (int y = 0; y < MAP.length; y++) {
System.out.println("X:" + x + ",Y:" + y);
setImageContent(x, y);
}
}
}
private void setImageContent(int x, int y) {
Terrain t = Terrain.getTerrainFor(MAP[x][y]);
displayedMap[x][y] = t.getImage();
}
町のコンストラクターで y が 11 になり、それが言う setImagecontent に移動するとき
スレッド「AWT-EventQueue-0」での例外 java.lang.ArrayIndexOutOfBoundsException: 11