2013-11-27 169 views
1

我不明白为什么我得到这个错误:了java.lang.RuntimeException:未找到资源我试图用油滑和LWJGL库做一个简单的2D游戏,我跟着这个指南http://www.youtube.com/playlist?list=PLaNw_AbDFccGkU5gnFYquQ0PNQPmmD-Q7和我自己设法做了更多。java.lang.RuntimeException:找不到资源?

事情是,即使图像确实存在于指定位置,我也会收到此错误。游戏运行良好,并突然退出我已经提到的错误。

错误:

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

当您的资源(映像现在)不在您的CLASSPATH中时,通常会出现“java.lang.RuntimeException:Resource not found”,通常它是类路径问题。

This也可能帮助你。

+0

谢谢,但显然它没有工作。我将所有图像移至res,在.java文件中无处不在,但没有运气。 – tomtam