Votre propre signal
Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 7 sur 27.
Vous pouvez donner vos propres signaux à un nœud. Déclarez-en un en haut du script avec signal :
extends Area2D
signal hitÉmettez-le avec emit() lorsque l’événement se produit :
func _on_body_entered(body):
hit.emit()Un ancien code peut utiliser emit_signal("hit"). Cela fait la même chose.
Les pointes signalent uniquement que quelqu’un a été touché. Ce que provoque un coup dépend du code qui écoute. Ici, le script sur Main écoute hit :
extends Node2D
# Main écoute le signal hit des pics, une fois que ceux-ci en disposent.
func _ready():
if $Spikes.has_signal("hit"):
$Spikes.hit.connect(_on_spikes_hit)
func _on_spikes_hit():
print("Ouch!")
$Player.modulate = Color(1, 0.42, 0.42)Vous écrirez bientôt des écouteurs comme celui-ci. Dans cette leçon, vous ne modifiez que les pointes.
Défi
FacileDonne un signal aux pics et envoie-le quand quelqu’un marche dessus :
- Déclare
signal hiten haut despikes.gd. - Dans
_on_body_entered, envoie-le avechit.emit().
Marche sur les pics. La console devrait afficher Ouch! et tu deviens corail.
Essayez vous-même
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Signaux et collisions
Entraînez-vous par vous-même : Playground Godot