6

私はlibgdxを使ってAndroidデバイスに火をつけます:

ParticleEffect effect;
ParticleEffectPool fireEffectPool;
Array<PooledEffect> effects = new Array<PooledEffect>();

@Override
public void create() 
{
    ...
    effect = new ParticleEffect();
    effect.load(Gdx.files.internal("particles/fire01.p"), Gdx.files.internal("image"));
    effect.setFlip(true, false);
    fireEffectPool = new ParticleEffectPool(effect, 1000, 3000);

    PooledEffect myEffect = fireEffectPool.obtain();
    myEffect.setPosition(200, 400);
    effects.add(myEffect);
    ...
}

プログラムで効果を回転、速度設定、またはスケーリングできますか?

4

2 に答える 2

6

このコードをベースとして使用することで、パーティクルエフェクトの回転の問題の解決策を見つけました http://badlogicgames.com/forum/viewtopic.php?f=11&t=7060#p32607

そして、効果の振幅を保存するために小さな変更を追加します。それが役に立てば幸い。

public void rotateBy(float amountInDegrees) {
    Array<ParticleEmitter> emitters = particleEffect.getEmitters();        
        for (int i = 0; i < emitters.size; i++) {                          
           ScaledNumericValue val = emitters.get(i).getAngle();
           float amplitude = (val.getHighMax() - val.getHighMin()) / 2f;
           float h1 = amountInDegrees + amplitude;                                            
           float h2 = amountInDegrees - amplitude;                                            
           val.setHigh(h1, h2);                                           
           val.setLow(amountInDegrees);       
        }
    }
}
于 2015-04-08T22:51:20.640 に答える
5

はい。ParticleEmitterTestをチェックしてください:https ://github.com/libgdx/libgdx/blob/master/tests/gdx-tests/src/com/badlogic/gdx/tests/ParticleEmitterTest.java

あなたはParticleEmitterを入手する必要があります:

emitter = effect.getEmitters().first();
emitter.getScale().setHigh(5, 20);
于 2013-02-19T15:56:58.787 に答える