LiquidFun渲染粒子
LiquidFun rendering particles
我正在使用 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);
}
粒子调试渲染器:
pdr = new ParticleDebugRenderer(Color.BLUE, maxParticles); //set as BLUE
如果我将粒子设置为红色,它仍将呈现为蓝色,因为 ParticleDebugRenderer 设置为蓝色。
查看源代码我们可以找到2个渲染器。
ParticleDebugRenderer.java and ColorParticleRenderer.java
它们的代码区别在于ColorParticleRenderer从ParticleSystem获取颜色,ParticleDebugRenderer从constuctor获取颜色。
主要的使用区别是我们每次不调试时都使用ColorParticleRenderer。 ParticleDebugRenderer 是我们要调试粒子时使用的工具。我们使用它,因为我们不想在 ParticleSystem 的定义处改变颜色,因为
- 一个定义可能有多个ParticleSystem,所以在定义中改变颜色是没有意义的。
- 改一行图比改一行定义更容易(你避免说:哦,我忘了我在定义处改了颜色)
你的困惑来自于你在不调试时使用 ParticleDebugRenderer,所以你分配了两次相同的颜色。
我正在使用 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);
}
粒子调试渲染器:
pdr = new ParticleDebugRenderer(Color.BLUE, maxParticles); //set as BLUE
如果我将粒子设置为红色,它仍将呈现为蓝色,因为 ParticleDebugRenderer 设置为蓝色。
查看源代码我们可以找到2个渲染器。
ParticleDebugRenderer.java and ColorParticleRenderer.java
它们的代码区别在于ColorParticleRenderer从ParticleSystem获取颜色,ParticleDebugRenderer从constuctor获取颜色。
主要的使用区别是我们每次不调试时都使用ColorParticleRenderer。 ParticleDebugRenderer 是我们要调试粒子时使用的工具。我们使用它,因为我们不想在 ParticleSystem 的定义处改变颜色,因为
- 一个定义可能有多个ParticleSystem,所以在定义中改变颜色是没有意义的。
- 改一行图比改一行定义更容易(你避免说:哦,我忘了我在定义处改了颜色)
你的困惑来自于你在不调试时使用 ParticleDebugRenderer,所以你分配了两次相同的颜色。