Particles penetrate regular bodies
denisk20 opened this issue · comments
I'm using liquidfun with libgdx. I have a simple scene with some static bodies and one dynamic body of Circle shape. When particles contact the body under certain ange they penetrate it (slide beneath it). I have attached a gif which shows the issue. Is there anything that can be adjusted to mitigate this? I have tried all possible bodyDef / fixtureDef / particleDef / particleSystemDef tweaks but to no avail.
The code:
ParticleSystemDef systemDef = new ParticleSystemDef();
systemDef.radius = 10 * WORLD_TO_BOX;
systemDef.dampingStrength = 0.2f;
particleSystem = new ParticleSystem(world, systemDef);
particleDef = new ParticleDef();
particleDef.velocity.y = 4;
particleDef.position.y = 6;
BodyDef bodyDef = new BodyDef();
bodyDef.type = BodyType.DynamicBody;
bodyDef.position.set(1, 1);
Body body = world.createBody(bodyDef);
CircleShape shape = new CircleShape();
shape.setRadius(2);
body.createFixture(shape, 0.5f);
...
particleSystem.createParticle(particleDef); // in a loop
...
...
// in render()
int particleIterations = particleSystem.calculateReasonableParticleIterations(Gdx.graphics.getDeltaTime());
world.step(Gdx.graphics.getDeltaTime(), 10, 6, particleIterations);
Did you try using the bullet
attribute of BodyDef
? I'm not seeing that in what you've described so far.
@louis-langholtz I actually didn't but unfortunately it doesn't make any difference. The only thing which seems to matter is the type of the body -- the issue doesn't happen for Static or Kinematic types, only for Dynamic, but changing the type is obviously not what I'm looking for.
Here's a similar question on StackOverflow: https://stackoverflow.com/questions/74159725/liquidfun-particles-being-sucked-in-and-shot-out-of-objects