Fonctions surchargeables

La classe Node de Godot fournit des fonctions virtuelles que vous pouvez surcharger pour mettre à jour les nœuds à chaque image ou lors d'événements spécifiques, comme lorsqu'ils entrent dans l'arbre de la scène.

Ce document présente celles que vous utiliserez le plus souvent.

Voir aussi

Sous le capot, ces fonctions s'appuient sur le système de notifications de bas niveau de Godot. Pour en savoir plus, consultez Notifications Godot.

Deux fonctions vous permettent d'initialiser et de récupérer les noeuds, en plus du constructeur de la classe : _enter_tree() et _ready().

Lorsque le noeud entre dans l'arbre de la scène, il devient actif et le moteur appelle sa méthode _enter_tree(). Les enfants de ce noeud peuvent ne pas encore faire partie de la scène active. Comme vous pouvez supprimer et réinsérer des nœuds dans l'arbre de scène, cette fonction peut être appelée plusieurs fois pendant la durée de vie d'un nœud.

La plupart du temps, vous utiliserez _ready() à la place. Cette fonction n'est appelée qu'une seule fois dans la vie d'un noeud, après _enter_tree(). _ready() s'assure que tous les enfants sont entrés dans l'arbre de la scène en premier, de sorte que vous pouvez en toute sécurité appeler get_node() sur lui.

Voir aussi

Pour en savoir plus sur l'obtention de références de nœuds, lisez doc_nodes_et_scene_instances.

Un autre callback lié est _exit_tree(), que le moteur appelle chaque fois qu'un nœud sort de l'arbre de scène. Cela peut être lorsque vous appelez Node.remove_child() ou lorsque vous libérez un noeud.

# Called every time the node enters the scene tree.
func _enter_tree():
    pass

# Called when both the node and its children have entered the scene tree.
func _ready():
    pass

# Called when the node is about to leave the scene tree, after all its
# children received the _exit_tree() callback.
func _exit_tree():
    pass

Les deux méthodes virtuelles _process() et _physics_process() vous permettent de mettre à jour le noeud, chaque frame et chaque physics frame respectivement. Pour plus d'informations, lisez la documentation dédiée : doc_idle_et_physics_processing.

# Called every frame, as often as possible.
func _process(delta):
    pass

# Called every physics frame.
func _physics_process(delta):
    pass

Deux autres fonctions intégrées de rappel de noeuds sont Node._unhandled_input() et Node._input(), que vous utilisez à la fois pour recevoir et traiter des événements d'entrée individuels. La méthode _unhandled_input() reçoit chaque pression de touche, clic de souris, etc. qui n'ont pas déjà été traités dans un callback _input() ou dans un composant d'interface utilisateur. Vous voulez l'utiliser pour les entrées de jeu en général. Le callback _input() vous permet d'intercepter et de traiter les événements de saisie avant que _unhandled_input() ne les reçoive.

Pour en savoir plus sur les entrées dans Godot, consultez la section Input.

# Called once for every event.
func _unhandled_input(event):
    pass

# Called once for every event, before _unhandled_input(), allowing you to
# consume some events.
func _input(event):
    pass

Il existe d'autres fonctions surchargeables comme Node._get_configuration_warning(). Les types de nœuds spécialisés fournissent plus de callbacks comme CanvasItem._draw() pour dessiner de manière programmatique ou Control._gui_input() pour gérer les clics et les entrées sur les éléments de l'IU.