我试图使用粒子效果,但在应用程序启动之前遇到与此任务相关联的错误。
我就是这样设置的:

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();

请注意,“粒子效果”文件和相应的源图像文件位于“数据/效果”文件夹下。我确实注意到,我从“粒子效果编辑器”(Particle effects editor)中保存的“粒子效果”(Particle effects)文件似乎不是.p文件类型。相反,它似乎只属于“file”类型。也许这是错误的可能原因?
错误:
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

最佳答案

再看看这个:

private ParticleEffect particle;

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

这叫做阴影。您意外地创建了一个具有相同类型和名称的新局部变量,并将其实例化,而不是类的字段。
改为:
private ParticleEffect particle;

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

10-08 15:07
查看更多