Menu
CoddyTech

Les murs vous arrêtent

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

Les murs et le pilier sont des nœuds StaticBody2D. Un corps statique ne bouge jamais. Chacun possède une CollisionShape2D pour sa forme solide et un ColorRect pour le dessiner.

Seul move_and_slide() détecte les murs. Modifier position déplace le corps sans effectuer de vérification ; il traverse donc les murs :

position.x += direction * speed * delta   # traverse les murs
velocity.x = direction * speed            # arrêté par les murs
move_and_slide()

Le texte après # est un commentaire. Godot l’ignore.

Un corps qui heurte un mur de biais conserve la partie de son mouvement qui longe le mur. Il glisse au lieu de rester bloqué, ce qui explique le nom de move_and_slide().

challenge icon

Défi

Facile

Fais en sorte que les murs arrêtent le héros.

  1. Remplace la ligne position.x par une ligne qui définit velocity.x sur direction * speed, sans delta.
  2. En dessous, appelle move_and_slide().

Appuie sur « Jouer » et marche dans les deux sens : le pilier et le mur arrêtent le héros. Puis clique sur « Vérifier ».

Essayez vous-même

extends CharacterBody2D

var speed = 200

func _physics_process(delta):
	var direction = Input.get_axis("move_left", "move_right")
	position.x += direction * speed * delta

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

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