Introducing kinematic bodies
A platformer requires gravity, collisions, jumping, and other physics behavior, so you might think that RigidBody2D
would be the perfect choice to implement the character’s movement. In practice, you’ll find that the more realistic physics of the rigid body are not desirable for a platform character. To the player, realism is less important than responsive control and an action feel. So, as the developer, you want to have precise control over the character’s movements and collision response. For this reason, a kinematic style of physics is usually the better choice for a platform character.
The CharacterBody2D
node is designed for implementing physics bodies that are to be controlled directly via code. These nodes detect collisions with other bodies when they move but are not affected by global physics properties such as gravity or friction. This doesn’t mean that they can’t be affected by gravity and other forces ...