说明: 我目前正在使用 IntelliJ IDEA 社区版在 java 中编写游戏库。我使用jSFML作为多媒体库。我尝试使用 jsfml 的 wiki 页面渲染一个精灵,一切似乎都运行良好,所以我继续前进。
问题: 后来我尝试用一个测试游戏编译库,发现无法加载玩家的精灵。当它从编辑器运行时,一切都很好,但如果我在编辑器之外运行它,它就不起作用。它给了我这个错误,我认为这意味着该文件不存在,我不知道:
java.io.IOException: Failed to load image "C:\src\main\resources\Player.png". Reason : Unable to open file
at org.jsfml.graphics.Texture.loadFromFile(Unknown Source)
at org.jsfml.graphics.Texture.loadFromFile(Unknown Source)
at filipeex.gamer.library.core.GameRenderer.DisplaySprite(GameRenderer.java:32)
at filipeex.gamer.library.gameobjects.Player.FrameRender(Player.java:38)
at filipeex.gamer.library.core.Game.FrameRender(Game.java:118)
at filipeex.gamer.library.core.Game.InitLoop(Game.java:206)
at filipeex.gamer.library.core.Game.InitWindow(Game.java:180)
at filipeex.gamer.library.core.Game.Start(Game.java:52)
at filipeex.gamer.library.testing.TestingAsUser.main(TestingAsUser.java:29)
这是加载纹理并将其渲染到窗口的代码:
GameRenderer.DisplaySprite("/src/main/resources/Player.png", position, rotation);
以及方法本身:
Texture t = new Texture();
t.loadFromFile(Paths.get(path));
Sprite s = new Sprite(t);
s.setPosition(position.x, position.y);
s.setScale(1, 1);
s.setRotation(rotation);
GameWindow.Get().draw(s);
我已经:
- 搜索了很多类似的问题,
- 从他们那里尝试了所有可能的解决方案,包括将目录添加到工件,但没有奏效。