2016-08-31 12 views
0

私はLiquidFunを使用して水をシミュレートしています。パーティクルを使用するbox2dに基づく物理エンジンです。私の問題は、特定の色でパーティクルをレンダリングするときです。LiquidFunレンダリング粒子

粒子定義に粒子色を設定する目的は何ですか?パーティクルがレンダリングされる色をParticleDebugRendererに設定する必要がある場合にも使用します。

public void createWater(float x, float y){ 
     ParticleDef def = new ParticleDef(); 
     def.color.set(Color.Red); //set particle color 
     def.flags.add(ParticleDef.ParticleType.b2_tensileParticle); 
     def.flags.add(ParticleDef.ParticleType.b2_colorMixingParticle); 
     def.position.set(x, y); 
     int index = system.createParticle(def); 
    } 

ParticleDebugRenderer:

pdr = new ParticleDebugRenderer(Color.BLUE, maxParticles); //set as BLUE 

IはParticleDebugRenderer青色に設定されているので、それが依然として青色で描画されるREDなるように粒子を設定した場合。

+0

水がいくつあって、それらをデバッグしたいのですが?彼らはすべて青で、あなたはあまり見ない? – pr0gramist

+0

私はそう思いますか? def.color.set()は、ParticleDebufRenderer –

答えて

1

ソースコードを見ると、2つのレンダラーが見つかります。

ParticleDebugRenderer.javaColorParticleRenderer.java

それらの間のコード差がColorParticleRendererがParticleSystemから色を取得し、ParticleDebugRendererはconstuctorから色を取得することです。

主な違いは、ではなく、のデバッグを行うたびにColorParticleRendererを使用していることです。 ParticleDebugRendererは、パーティクルをデバッグするときに使用するものです。そこ一つの定義にはいくつかのParticleSystemであってもよいし、その定義の色を変更することが無意味になり

  1. ので、我々は、ParticleSystemの定義で色の変化をしたくないので、私たちは、それを使用します。
  2. 定義の1行よりも描画の1行を変更する方が簡単です(あなたが言っ避ける:おお、私は私が定義で色を変更することを忘れてしまった)

あなたの混乱は、あなたがしているという事実から来ていますデバッグしていないときにParticleDebugRendererを使用して、同じ色を2回割り当てます。

+0

に感謝の意を表して役に立たないので、特定の色にレンダリングするのは混乱しています。colorParticleRendererがあったことを知らなかったのです。 box2dボディに類似したものはありますか? box2dDebugRendererクラスの代わりに使用できます。 –

+0

そんなものはないと思います。私たちがbox2Dボディーを色で塗りつぶされた形として描画することはめったにないのであまり意味がありません。 – pr0gramist

関連する問題