getSubimage因未知原因抛出NullPointerException

时间:2011-12-27 23:29:14

标签: java

好吧,我是第一次尝试制作图形游戏,但是:

BufferedImage tileset = null;
try{
    tileset = ImageIO.read(new File("sets/tiles.png"));
}
catch(IOException e){
    System.out.println(e.toString());
}
MwatRoot.allTiles[0].tile = tileset.getSubimage(0, 0, 32, 32);
MwatRoot.allTiles[1].tile = tileset.getSubimage(0, 32, 32, 32);

这是抛出NullPointerException:

MwatRoot.allTiles[0].tile = tileset.getSubimage(0, 0, 32, 32);
MwatRoot.allTiles[1].tile = tileset.getSubimage(0, 32, 32, 32);

这是allTiles:

public static TileClass[] allTiles = new TileClass[2];

和TileClass:

public class TileClass {
    public BufferedImage tile;
    public boolean BlocksMovement;
}

有人可以向我解释为什么会这样吗?我已经检查过,tileset不是null。

1 个答案:

答案 0 :(得分:3)

public static TileClass[] allTiles = new TileClass[2];

这无法正确初始化数组。

您必须在其后添加以下内容:

allTiles[0] = new TileClass();
allTiles[1] = new TileClass();