Jeux

La physique dans les jeux : RigidBody vs CharacterBody

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.

// Commentaires (0)

Connectez-vous pour laisser un commentaire.

Aucun commentaire pour le moment.