4

所以我一直在尝试将一个粒子效果文件加载到 libgdx 并且我得到一个找不到文件的异常。

这是我的代码:

 particleEffect = new ParticleEffect();
 particleEffect.load(Gdx.files.internal("bin/emiter.pahh"),Gdx.files.internal("bin/untitled.png")); 

这是我的文件夹的外观

在此处输入图像描述

这是错误:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: bin/untitled.png/Untitled.png
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:107)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load file: bin/untitled.png/Untitled.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:126)
at com.badlogic.gdx.graphics.g2d.ParticleEffect.loadTexture(ParticleEffect.java:195)
at com.badlogic.gdx.graphics.g2d.ParticleEffect.loadEmitterImages(ParticleEffect.java:190)
at com.badlogic.gdx.graphics.g2d.ParticleEffect.load(ParticleEffect.java:138)
at com.me.mygdxgame.MyGdxGame.create(MyGdxGame.java:124)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:121)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:104)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: bin\untitled.png\Untitled.png (Internal)
at com.badlogic.gdx.files.FileHandle.read(FileHandle.java:127)
at com.badlogic.gdx.files.FileHandle.length(FileHandle.java:566)
at com.badlogic.gdx.files.FileHandle.readBytes(FileHandle.java:215)
at com.badlogic.gdx.graphics.Pixmap.<init>(Pixmap.java:137)
... 11 more

可能是什么问题呢?

4

2 回答 2

2

您的文件路径为:“assets/emiter.phh”

根据您的图片,它应该是:“assets/emiter.pahh”。

编辑:

我查看了您修改后的错误消息:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: com.badlogic.gdx.utils.GdxRuntimeException: File not found: assets\emiter.pahh (Internal)
at   com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:107)
Caused by: com.badlogic.gdx.utils.GdxRuntimeException: File not found: assets\emiter.aphh (Internal)

在堆栈跟踪中间名称已更改的事实让我感到困惑......

"File not found: assets\emiter.pahh (Internal)"
"File not found: assets\emiter.aphh (Internal)"

您确定您已正确命名它,因为错误源自 libGDX 的文件句柄。此外,文件是否被放入您正在运行的项目的“bin”文件夹中?您应该能够在“my-gdx-game/bin/emitter.pahh”中看到该文件。

另外,必须尝试在 libGDX 测试项目中运行 ParticleEmitterTest 吗?

编辑2:

您需要将这两行更改为:

particleEffect = new ParticleEffect();
particleEffect.load(Gdx.files.internal("bin/emiter.pahh"),
    Gdx.files.internal("bin/untitled.png"));

到:

particleEffect = new ParticleEffect();
particleEffect.load(Gdx.files.internal("bin/emiter.pahh"),
    Gdx.files.internal("bin"));

我相信图像的路径是在发射器文件中定义的:)。

于 2012-09-25T20:46:27.160 回答
1

在 IntelliJ 中使用类似“level_bodies\level6\”的路径的 OSX 上可能会发生相同的错误。在 Windows 下它可以工作。

于 2012-11-13T16:13:39.047 回答