Vous pouvez définir des signaux personnalisés dans un script. Disons, par exemple, que vous souhaitez monter un écran de game over quand la vie du joueur atteint zéro.


Pour ce faire, vous pouvez définir un signal nommé died
(mort) ou health_depleted
(vie épuisée) lorsque sa santé atteint 0.
extends Node2D
signal health_depleted
var health = 10
Vos signaux fonctionnent de la même façon que les signaux intégrés : ils apparaissent dans l’onglet Signaux et vous pouvez vous y connecter comme avec les autres.

Pour émettre un signal dans vos scripts, appelez emit() sur le signal.
func take_damage(amount):
health -= amount
if health <= 0:
health_depleted.emit()Un signal peut aussi déclarer en option un ou plusieurs arguments. Spécifiez les noms des arguments entre parenthèses :
extendsNode2D signalhealth_changed(old_value,new_value) varhealth=10
Exécuter la scène avec le code,


extends Node2D
signal health_depleted
signal health_changed(old_value, new_value)
var health = 10
func take_damage(amount):
var old_health = health
health -= amount
health_changed.emit(old_health, health)
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass