我过去已成功加载了所有图像,并且我使用的是OpenGL ES 2.0,因此图像不需要是2的幂(我有几个成功加载但不是).
有问题的代码是这样的:
Line 96: splashSheet = new Texture(Gdx.files.internal("test.png"));
这是我的错误消息:
Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:111) Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: test.png at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:140) at com.badlogic.gdx.graphics.glutils.FileTextureData.prepare(FileTextureData.java:64) at com.badlogic.gdx.graphics.Texture.load(Texture.java:175) at com.badlogic.gdx.graphics.Texture.create(Texture.java:159) at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:133) at com.badlogic.gdx.graphics.Texture.<init>(Texture.java:122) at com.panini.game.GameScreen.show(GameScreen.java:96) at com.badlogic.gdx.Game.setScreen(Game.java:59) at com.panini.game.Splash.render(Splash.java:29) at com.badlogic.gdx.Game.render(Game.java:46) at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:190) at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:108) Caused by: java.io.IOException: couldn't load pixmap at com.badlogic.gdx.graphics.g2d.Gdx2DPixmap.<init>(Gdx2DPixmap.java:57) at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:138) ... 11 more
这就是使这成为一个有趣问题的原因.我可以加载this文件,但我无法加载this文件.前者基本上只是我想要使用的截图.
我提供的第二张图片(不起作用)是原版.它被称为splashSprites.png,但我已经尝试将其重命名为test.png并正确引用它但它仍然不起作用,所以我知道这绝对不是命名问题或任何事情.如果我将这两个文件分别放在名为test1.png和test2.png的assets或bin目录中,那么如果我要求加载test1.png则代码可以工作,但如果我要求加载test2.png则不行,所以这不是我我把文件放在错误的地方.这两个似乎是最有可能的候选人,但我已经排除了他们.
我尝试了其他的东西,比如重新导出第一张图片等等,但它从来没有用过(做了什么工作就是截图,这就是为什么我在这里).我的猜测是它可能与其中一个图像中的alpha有关(因为这实际上是唯一不同的两个 – 一个是alpha而另一个没有)但是这不太可能因为我能够加载其他一些有alpha的纹理.我真的很难过.
提前致谢.