嗯,我第一次尝试制作图形游戏,但是:
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);
这是所有Tiles:
public static TileClass[] allTiles = new TileClass[2];
和TileClass:
public class TileClass {
public BufferedImage tile;
public boolean BlocksMovement;
}
有人可以向我解释为什么会发生这种情况吗?我已经检查过了,tileset 不为空。
最佳答案
public static TileClass[] allTiles = new TileClass[2];
这不能正确初始化数组。
您必须在其后添加以下内容:
allTiles[0] = new TileClass();
allTiles[1] = new TileClass();
关于java - getSubimage 因未知原因抛出 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8650318/