La physique dans les jeux : RigidBody vs CharacterBody
RigidBody
Un RigidBody est un objet entièrement contrôlé par le moteur physique. Vous lui appliquez des forces (impulsion, vélocité) et le moteur calcule sa position.
- Pour : Objets qui doivent réagir de manière réaliste (caisses, projectiles, ragdolls).
- Contre : Difficile à contrôler précisément pour un personnage joueur (sensation de "flotter").
// Godot - RigidBody2D
func _integrate_forces(state):
if Input.is_action_pressed("move_right"):
apply_central_force(Vector2(100, 0))
CharacterBody (ou KinematicBody)
Un CharacterBody est contrôlé par le script. Le moteur physique ne le déplace pas, il détecte seulement les collisions. C'est à vous de gérer la réaction.
- Pour : Personnages joueurs, PNJ. Contrôle total et réactif.
- Contre : Ne réagit pas "naturellement" aux forces externes (explosions, etc.), il faut le coder.
// Godot - CharacterBody2D
func _physics_process(delta):
velocity.x = Input.get_axis("left", "right") * 300
move_and_slide()
Conclusion : Utilisez CharacterBody pour tout ce que le joueur contrôle directement, et RigidBody pour tout le reste qui doit interagir avec la physique du monde.
Aucun commentaire pour le moment.