我的问题是粒子效应必须在一开始运行好几次才能在android上正常工作。在最初的几次中,它只显示一个粒子,然后在某一时刻显示太多的粒子,然后下一次运行是正常的。效果不是连续的,它的长度大约是500毫秒。这就是它的样子:
GIF
它只有在android上才会这样,在桌面上一切都很正常。这是我正在使用的代码:
ParticleEffect starsEffect = new ParticleEffect();
starsEffect.load(Gdx.files.internal("particles/stars/effect.p"), Gdx.files.internal("particles/stars"));
starsEffect.setPosition(x, y);
starsEffectActor = new ParticleEffectActor(starsEffect);
stage.addActor(starsEffectActor);
particileeffectactor类的实现:
public class ParticleEffectActor extends Actor {
ParticleEffect particleEffect;
public ParticleEffectActor(ParticleEffect particleEffect) {
super();
this.particleEffect = particleEffect;
}
@Override
public void draw(Batch batch, float parentAlpha) {
particleEffect.draw(batch);
}
@Override
public void act(float delta) {
super.act(delta);
particleEffect.update(delta);
}
public void start() {
particleEffect.start();
}
}
最佳答案
同样的事情发生在我身上,我不知道为什么。所以我对它进行了调试,结果发现你只应该在效果运行时调用ParticleEffect().update(float)
。
因此,您应该只在调用ParticleEffect().start()
之后更新效果。