That explains it. move_and_slide()
has a parameter called "infinite inertia", which is enabled by default. This means that the kinematic body pushes the rigid body regardless of its physics properties.
First, you need to set this to false
, at which point your player will just stop when hitting the rigid body.
Then you need to, upon collision, apply an impulse to the rigid body based on your player's desired effective "mass".
You can see a more complete explanation of this interaction with examples here:
http://godotrecipes.com/physics/kinematic_to_rigidbody/