好吧,我是第一次尝试制作图形游戏,但是:
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。
答案 0 :(得分:3)
public static TileClass[] allTiles = new TileClass[2];
这无法正确初始化数组。
您必须在其后添加以下内容:
allTiles[0] = new TileClass();
allTiles[1] = new TileClass();