Java LibGDX ParticleEffectPool问题

Java LibGDX ParticleEffectPool问题,java,android,libgdx,particle-system,Java,Android,Libgdx,Particle System,我对libGDX中的ParticleEffectPool有一个问题-第一个效果没有显示,但为什么之后它会工作 以下是设置它的代码: destroyEffect = new ParticleEffect(); destroyEffect.load(Gdx.files.internal("destroy.txt"), Gdx.files.internal("")); pool = new ParticleEffectPool(destroyEffect, 10, 100); activeE

我对libGDX中的ParticleEffectPool
有一个问题-第一个效果没有显示,但为什么之后它会工作

以下是设置它的代码:

 destroyEffect = new ParticleEffect();
 destroyEffect.load(Gdx.files.internal("destroy.txt"), Gdx.files.internal(""));

 pool = new ParticleEffectPool(destroyEffect, 10, 100);
 activeEffects = new Array<ParticleEffectPool.PooledEffect>();
在渲染()期间:

for(int i=0;i
这对我来说似乎很简单,但第一次它不起作用。

effect.isComplete()在添加到池中后立即生效。因此,它在渲染函数中被释放,不可能被绘制

我发现,在我的情况下,重置效果可以解决这个问题


请添加effect.reset();获得声明后。

太棒了!我在书中甚至在libGDX论坛上都找不到答案!这项工作,谢谢!
ParticleEffectPool.PooledEffect effect = pool.obtain();

if (effect != null) {
  effect.setPosition(x, y);
  activeEffects.add(effect);
}
for (int i = 0; i < activeEffects.size;) {
    ParticleEffectPool.PooledEffect effect = activeEffects.get(i);

    if (effect.isComplete()) {
       pool.free(effect);
       activeEffects.removeIndex(i);
    }
    else {
      effect.draw(batch, deltaTime);
      i++;
    }
}