0
map = new BufferedImage[width][height];
  for(int i=0;i<height;i++){
      for(int j=0;j<width;j++){    
  if(charMap[j][i] == Mountains.indentifier) {      
    if ( j+1 < width && j-1 >= 0){
        if(charMap[j-1][i] != Mountains.indentifier && charMap[j+1][i] != Mountains.indentifier) {            
            map[j][i]= tileGrid[1][10];
         }
    }    
    else {
        map[j][i]= tileGrid[8][10];
    }
   }
}

这是我用来尝试通过检查单元格周围的每个图块来检查二维数组的代码,但我似乎得到了一个空指针异常我想知道是否有人可以提供帮助?

4

2 回答 2

0

您只分配了外部数组。

您需要分配每个内部数组。

所以:

map = new BufferedImage[width][height];
for (int i = 0; i < width; i++)
{
    map[i] = new BufferedImage[height];
}
于 2012-07-12T01:03:12.543 回答
0

我怀疑您是从charMap[j][i] == Mountains.indentifier线路中获取 NullPointerException 的。

确保按照 Geoff 的建议为 charMap 和 map 初始化内部数组。

于 2012-07-12T04:12:54.920 回答