2

我正在尝试使用粒子效果,但在我的应用程序启动之前遇到了与此任务相关的错误。

这就是我设置它的方式:

private ParticleEffect particle;

@Override
public void create(){...
            ParticleEffect particle = new ParticleEffect();
            particle.load(Gdx.files.internal("data/effects/flame1"), Gdx.files.internal("data/effects")); 
            particle.setPosition(Gdx.graphics.getWidth() /2, Gdx.graphics.getHeight() /2);
            particle.start();
            .........}
@Override
public void render(){...
            spriteBatch.begin();
            particle.draw(spriteBatch, Gdx.graphics.getDeltaTime());
            spriteBatch.end();

请注意,我的粒子效果文件和相应的源图像文件位于 data/effects 文件夹下。我确实注意到我从粒子效果编辑器保存的粒子效果文件似乎不是 .p 文件类型。相反,它似乎只是“文件”类型。也许这是错误的可能原因?

错误:

Exception in thread "LWJGL Application" java.lang.NullPointerException
at com.name.appname.GameClass.render(GameClass.java:111)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:207)
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)

java:111 是:

particle.draw(spriteBatch, Gdx.graphics.getDeltaTime());

我遵循了本教程: http ://www.youtube.com/watch?v=LCLa-rgR_MA

4

1 回答 1

5

再看看这个:

private ParticleEffect particle;

@Override
public void create(){...
    ParticleEffect particle = new ParticleEffect();

这称为阴影。您不小心创建了一个相同类型且具有相同名称的新局部变量,并实例化它而不是类的字段。

将其更改为:

private ParticleEffect particle;

@Override
public void create(){...
    particle = new ParticleEffect();
于 2014-03-21T12:19:15.520 回答