Menu
CoddyTech

CharacterBody2D

Fait partie de la section Entrées et déplacements du Journey Godot de Coddy. Leçon 7 sur 28.

Un Node2D traverse les murs. Un CharacterBody2D se heurte aux objets. Dans l’onglet Scène, le Hero est maintenant un CharacterBody2D. Son enfant CollisionShape2D est un cercle, qui représente la taille solide du héros. Les murs et le pilier ont aussi des formes de collision.

Un corps possède une velocity, un Vector2 exprimé en pixels par seconde. La définir ne déplace rien. move_and_slide() déplace le corps selon sa vélocité pendant une image et l’arrête contre tout élément solide :

func _physics_process(delta):
	velocity = Vector2(150, 0)
	move_and_slide()

Déplace les corps dans _physics_process, qui s’exécute au rythme de la physique. move_and_slide() prend en compte la durée de l’image, donc ne multiplie jamais velocity par delta.

challenge icon

Défi

Facile

Fais déplacer le héros en fonction de sa vitesse.

  1. Dans _physics_process(), sous la ligne velocity, ajoute move_and_slide().
  2. Indente-la avec une tabulation, comme la ligne ci-dessus.

Appuie sur « Jouer » : le héros glisse vers la droite à 150 pixels par seconde et s’arrête au pilier. Puis appuie sur « Vérifier ».

Essayez vous-même

extends CharacterBody2D

func _physics_process(delta):
	velocity = Vector2(150, 0)

Toutes les leçons de Entrées et déplacements

Entraînez-vous par vous-même : Playground Godot