Tentando carregar a imagem usando ImageIO.read (class.getResource (URL)), mas getResource está retornando null
Eu venho fazendo um jogo 2D com meu amigo e tenho aprendido muito sobre alguns conceitos básicos de desenvolvimento de jogos através de alguns tutoriais do Youtube. Uma das coisas que eu estava aprendendo são sprites (para aqueles que não sabem, imagens 2D para renderizar na tela) e como usá-las no meu jogo. Eu tenho usadoImageIO.read(this.class.getResource(pathToMySprite))
mas parece quegetResource()
está retornandonull
por algum motivo.
Eu tenho andado com o caminho um pouco, adicionando "/" na frente dele, removendo "/", colocando a propriedade user.dir para ver se ele precisava do caminho inteiro, e ainda estou recebendo o mesmo erro .
TILE_TEXTURES(System.getProperty("user.dir") + "/textures/tile.png");
//ENTITY_TEXTURES("/textures/entity.png");
private BufferedImage img;
private SpriteSheet(String path) {
System.out.println(System.getProperty("user.dir"));
try {
//TODO: Fix this error, don't know what's wrong.
img = ImageIO.read(SpriteSheet.class.getResource(path)); // error here!!!
} catch (IOException e) {
e.printStackTrace();
}
}
public BufferedImage getImage() {
return img;
}
Toda e qualquer ajuda é apreciada. Eu não tenho comentado o código (eu costumo fazer isso quando eu chego onde eu posso sentar e ser feliz com o que eu terminei) mas é uma classe bem pequena, então eu acho que vocês serão capazes de entender o que é indo muito bem.
A pasta que contém a imagemÉ no caminho de classe do meu projeto. Eu também incluí o erro:
Exception in thread "Thread-2" java.lang.ExceptionInInitializerError
at com.brickbattle.client.src.gui.Sprite.<clinit>(Sprite.java:7)
at com.brickbattle.client.src.objs.Tile.<init>(Tile.java:67)
at com.brickbattle.client.src.objs.Player.initPlayerNum(Player.java:19)
at com.brickbattle.client.src.util.BrickBattle.init(BrickBattle.java:114)
at com.brickbattle.client.src.util.BrickBattle.run(BrickBattle.java:85)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: input == null! //HERE IS ERROR
at javax.imageio.ImageIO.read(Unknown Source)
at com.brickbattle.client.src.gui.SpriteSheet.<init>(SpriteSheet.java:17)
at com.brickbattle.client.src.gui.SpriteSheet.<clinit>(SpriteSheet.java:8)
Obrigado novamente!