Les zones se rencontrent
Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 6 sur 27.
Les nœuds de Godot sont dotés de signaux intégrés. Un Area2D en possède quatre que tu utiliseras souvent :
body_enteredetbody_exited: un corps est entré ou est sorti. Les corps sont des objets solides, commeCharacterBody2DetStaticBody2D.area_enteredetarea_exited: une autre zone est entrée ou est sortie.
Une zone n’envoie jamais body_entered pour une autre zone. Les étoiles qui tombent sont des zones, donc le panier a besoin de area_entered :
func _ready():
area_entered.connect(_on_star_caught)La fonction reçoit la zone qui est entrée ; elle prend donc une valeur, comme _on_body_entered(body). Tu peux lui donner le nom que tu veux.
Défi
FacileFais en sorte que le panier détecte les étoiles qui tombent.
- Les étoiles sont des zones, pas des corps. Dans
_ready(), connectearea_enteredà la place debody_entered. - Conserve
_on_star_caughtcomme fonction.
Appuie sur « Jouer » : la console affiche Caught a star! deux fois, une fois par étoile. Puis appuie sur « Vérifier ».
Essayez vous-même
extends Area2D
func _ready():
body_entered.connect(_on_star_caught)
func _on_star_caught(star):
print("Caught a star!")
Toutes les leçons de Signaux et collisions
Entraînez-vous par vous-même : Playground Godot