In Godot, when a 2D rigid body collides with another body, it seems that the force is absorbed/used to bounce back, but it doesn't give an "angular impulse" to the object, for instance if a rectangle (1) collided on its side with a pointy edge (2), it will first bounce back in the exact opposite direction of where it came from (3) (without even changing its rotation) and then it is only when it will be resting with a point to edge contact that it will start pivoting around the contact point (4).

Image illustrating the explanation

There are two issues I have with this:

  • If bounciness is enabled, I would have liked it to bounce back while gaining angular momentum like it would in the real world
  • Even when bounciness is off, I would like it to transfer its energy to angular momentum, while here it just completely stops due to the collision and only then starts rotating, while in reality the rotation speed should depend on how fast the initial collision was

Am I missing something in the physics parameters or is this something I should implement myself?



You must log in to answer this question.

Browse other questions tagged .