Votre propre signal
Fait partie de la section Signaux et collisions du Journey Godot de Coddy. Leçon 7 sur 27.
Tu peux donner à un nœud tes propres signaux. Déclare-en un en haut du script avec signal :
extends Area2D
signal hitÉmets-le avec emit() lorsque l'événement se produit :
func _on_body_entered(body):
hit.emit()Les anciens codes peuvent utiliser emit_signal("hit"). Cela fait la même chose.
Les pics 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 piques, une fois qu’elles en ont un.
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)Tu écriras bientôt des écouteurs comme celui-ci. Dans cette leçon, tu modifies uniquement les pics.
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().
Appuie sur « Jouer » et marche sur les pics : la console affiche Ouch! et tu deviens couleur corail. Puis appuie sur « Vérifier ».
Essayez vous-même
extends Area2D
func _ready():
body_entered.connect(_on_body_entered)
func _on_body_entered(body):
pass
Toutes les leçons de Signaux et collisions
Entraînez-vous par vous-même : Playground Godot