2013-02-04 196 views
0

我目前正在测试Slick2D而这就是为什么我写一个乒乓球比赛, 另外,在此PongGame您可以选择音乐文件,这些文件在文件夹./musicSlick2D音乐不工作

当我运行它通过Eclipse,所有工作都完美无缺。 当我将其导出,在文件夹的所有当地人和图书馆的运行它,它也会启动, 但音乐菜单不起作用

你可以看到代码(当我选择音乐这只是崩溃): https://bitbucket.org/JohnnyCrazy/pingpong/src/f2fd635ccfef/src/me/Johnny/Slick2D?at=master

Error: Mon Feb 04 13:47:05 CET 2013 ERROR:OpenAL error: Invalid 
Operation (40964) org.lwjgl.openal.OpenALException: OpenAL error: 
Invalid Operation (40964) 
     at org.lwjgl.openal.Util.checkALError(Util.java:64) 
     at org.lwjgl.openal.AL10.alDeleteBuffers(AL10.java:1097) 
     at org.newdawn.slick.openal.AudioImpl.release(AudioImpl.java:56) 
     at org.newdawn.slick.Music.release(Music.java:424) 
     at me.Johnny.Slick2D.Slick2D.setMusic(Slick2D.java:57) 
     at me.Johnny.Slick2D.MusikState.update(MusikState.java:108) 
     at org.newdawn.slick.state.StateBasedGame.update(StateBasedGame.java:278) 
     at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:678) 
     at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456) 
     at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361) 
     at me.Johnny.Slick2D.Slick2D.main(Slick2D.java:40) Mon Feb 04 13:47:05 CET 2013 ERROR:Game.update() failure - check the game code. 
    org.newdawn.slick.SlickException: Game.update() failure - check the 
    game code. 
     at org.newdawn.slick.GameContainer.updateAndRender(GameContainer.java:684) 
     at org.newdawn.slick.AppGameContainer.gameLoop(AppGameContainer.java:456) 
     at org.newdawn.slick.AppGameContainer.start(AppGameContainer.java:361) 
     at me.Johnny.Slick2D.Slick2D.main(Slick2D.java:40) 

我不明白为什么它在Eclipse和出口没有。

回答

0

构造函数Music(String)的JavaDocs不完全清楚它如何解释String。采用String的J2SE方法通常假定它代表到File的路径。如果是这样,那也是失败背后的原因。

通常,这些类型的资源在应用程序变成时。建成。嵌入式资源必须由URL访问。有关形成URL的提示,请参阅embedded resource info. page

+0

我认为那不是问题,因为当我用Eclipse运行我的游戏时,所有工作正常,我可以选择音乐播放,我听到它。唯一的问题是,当我将它导出时,当我选择音乐时出现错误 –

+0

您的评论没有添加我不知道和考虑的信息。我建议在1小时前尝试通过URL访问声音。 * –

+0

纠正我,如果我错了,但嵌入式资源是“嵌入到应用程序本身的二进制文件”,但它不应该是这样的,应用程序应该扫描FOlder在罐外音乐,不在里面。我试着用URL,但它给了我一个NullPointer –