Personnalisation des signaux

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.

Capture d’écran 2026-10-12 à 14.38.15

Capture d’écran 2026-10-12 à 14.38.25

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

Capture d’écran 2026-10-12 à 14.38.40

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.

Capture d’écran 2026-10-12 à 14.39.03

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,

Résultat visuel

Capture d’écran 2026-10-09 à 11.20.49

Explications
Comme les signaux représentent des événements qui viennent de se produire, nous utilisons généralement un verbe d’action au passé dans leur nom.
Vue du code dans l’éditeur Script :

Ezgif 5ed3d49a2685acd4 b

Script complet
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