粒子效果不渲染
Posted
技术标签:
【中文标题】粒子效果不渲染【英文标题】:Particle effect not rendering 【发布时间】:2014-04-28 19:07:34 【问题描述】:我正在尝试使用粒子效果,但在我的应用程序启动之前遇到了与此任务相关的错误。
我是这样设置的:
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
【问题讨论】:
【参考方案1】:再看看这个:
private ParticleEffect particle;
@Override
public void create()...
ParticleEffect particle = new ParticleEffect();
这称为阴影。您不小心创建了一个具有相同类型和名称的新局部变量,并实例化了它而不是您的类的字段。
改成这样:
private ParticleEffect particle;
@Override
public void create()...
particle = new ParticleEffect();
【讨论】:
非常感谢!啊,我确实喜欢快速修复的感觉。我会留意从这里开始的任何意外阴影......干杯。以上是关于粒子效果不渲染的主要内容,如果未能解决你的问题,请参考以下文章
6 cocos2dx粒子效果,类图关系,系统原生粒子和自己定义粒子效果,粒子编译器软件,爆炸粒子效果,烟花效果,火焰效果,流星效果,漩涡粒子效果,雪花效果,烟雾效果,太阳效果,下雨效果