我试图使用粒子效果,但在应用程序启动之前遇到与此任务相关联的错误。
我就是这样设置的:
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();