Menu
CoddyTech

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.

challenge icon

Défi

Facile

Donne un signal aux pics et envoie-le quand quelqu’un marche dessus :

  1. Déclare signal hit en haut de spikes.gd.
  2. Dans _on_body_entered, envoie-le avec hit.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
quiz iconTestez-vous

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