我使用LiquidFun来模拟水,它是基于使用粒子的box2d的物理引擎。我的问题是渲染具有特定颜色的粒子。
在粒子颜色定义上设置粒子颜色的目的是什么?当你还需要设置粒子在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
如果我将粒子设置为红色,它仍将呈现为蓝色,因为ParticleDebugRenderer设置为蓝色。
答案 0 :(得分:2)
查看源代码,我们可以找到2个渲染器。
ParticleDebugRenderer.java和ColorParticleRenderer.java
它们之间的代码差异在于ColorParticleRenderer从ParticleSystem获取颜色,而ParticleDebugRenderer从constuctor获取颜色。
主要用途是我们每次不调试时都使用ColorParticleRenderer。我们想要调试粒子时使用ParticleDebugRenderer。我们使用它,因为我们不想在ParticleSystem的定义中更改颜色,因为
您的混淆来自于您在未进行调试时使用ParticleDebugRenderer,因此您将相同的颜色分配两次。