use*_*959 4 java bufferedimage getresource javax.imageio
我和我的伙伴一起制作2D游戏,我通过一些Youtube教程学习了很多基本的游戏开发概念.我正在学习的一件事是精灵(对于那些不知道的人,2D图像渲染到屏幕上)以及如何在我的游戏中使用它们.我一直在使用,ImageIO.read(this.class.getResource(pathToMySprite))但似乎由于某种原因getResource()返回null.
我一直在调整路径,在它前面添加"/",删除"/",放置user.dir属性以查看它是否需要整个路径,我仍然得到相同的错误.
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;
}
Run Code Online (Sandbox Code Playgroud)
任何和所有的帮助表示赞赏.我没有评论代码(当我到达我可以坐下来并且对我已经完成的内容感到满意时,我通常这样做)但这是一个非常小的课程,所以我认为你们将能够理解什么是继续进行.
保存图像IS的文件夹位于项目的类路径中.我还包括错误:
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)
Run Code Online (Sandbox Code Playgroud)
再次感谢!
这个问题基本上与ImageIO无关,而是如何Class/ ClassLoader.getResource或getResourceAsStream有效.
有关解释,请参阅此答案.
在任何情况下,这些获取资源的方式只能从类路径读取(即,user.dir这里永远不会有帮助).
这应该工作:
ImageIO.read(getClass().getResource("/path/to/resource"));
Run Code Online (Sandbox Code Playgroud)
路径相对于类路径的根(由前导/指定).
如果您的资源不在类路径中,只需使用:
ImageIO.read(new File("path/to/resource");
Run Code Online (Sandbox Code Playgroud)
路径相对于启动应用程序的目录的位置.
| 归档时间: |
|
| 查看次数: |
10986 次 |
| 最近记录: |