我的问题是粒子效应必须在一开始运行好几次才能在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()之后更新效果。

10-06 11:19