我无法理解为什么我收到此错误: java.lang.RuntimeException:找不到资源 我正在尝试使用简单的2D游戏Slick和LWJGL库,我遵循了本指南http://www.youtube.com/playlist?list=PLaNw_AbDFccGkU5gnFYquQ0PNQPmmD-Q7,我自己也做了更多。
即使图像确实存在于指定位置,我也会收到此错误。游戏运行完全正常,并突然退出我已经提到的错误。
错误:
Wed Nov 27 14:43:46 PST 2013 ERROR:Resource not found:
/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png
java.lang.RuntimeException: Resource not found:
/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png
at org.newdawn.slick.util.ResourceLoader.getResourceAsStream(ResourceLoader.java:69)
at org.newdawn.slick.opengl.InternalTextureLoader.getTexture(InternalTextureLoader.java:273)
at org.newdawn.slick.Image.<init>(Image.java:270)
at org.newdawn.slick.Image.<init>(Image.java:244)
at org.newdawn.slick.Image.<init>(Image.java:232)
at org.newdawn.slick.Image.<init>(Image.java:198)
at tomtam.game.object.BlockGreen.render(BlockGreen.java:18)
at tomtam.game.main.World.render(World.java:447)
at tomtam.game.state.PlayState.render(PlayState.java:76)
at org.newdawn.slick.state.StateBasedGame.render(StateBasedGame.java:207)
at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:703)
at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361)
at tomtam.game.main.Main.main(Main.java:36)
Wed Nov 27 14:43:46 PST 2013 ERROR:Game.render() failure - check the game code.
org.newdawn.slick.SlickException: Game.render() failure - check the game code.
at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:706)
at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456)
at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361)
at tomtam.game.main.Main.main(Main.java:36)
因此错误指向代码的这一部分(图像):
public void render(GameContainer gc, Graphics g) throws SlickException
{
super.render(gc, g);
image = new Image("/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png");
}
我不是一个熟练的程序员,但我猜这个错误是因为图像变得不间断,即使它的位置或其他信息没有改变。这可能会产生一些滞后峰值,对..所以,我试着把它改成:
try
{
image = new Image("/home/tomtam/workspace/Game/gfx/world/object/blockgreen.png");
}
catch (RuntimeException npe)
{
}
我知道这样做是件坏事,但是,这样我没有收到任何错误,一切都运行良好一段时间。一段时间后,一些图像开始闪烁,我等待的时间越长,它们出现的时间就越少,直到最后消失。
代码有点长,但我可以发布,只是问。任何帮助将不胜感激。
答案 0 :(得分:0)
当您的资源(图像现在)不在您的CLASSPATH中时,通常会出现“java.lang.RuntimeException:Resource not found”,并且通常是类路径问题。
This也可以为您提供帮助。