Browse Source

:memo: Explique les fonctions virtuelles Godot

DricomDragon 2 days ago
parent
commit
d2c89ecfe5
1 changed files with 48 additions and 1 deletions
  1. 48 1
      guide/complet.md

+ 48 - 1
guide/complet.md

@@ -538,7 +538,6 @@ détruire le lanceur détruit aussi toutes les balles.
 ## Faire accélérer la balle
 
 
-
 Niv. 2
 
 
@@ -562,6 +561,54 @@ Niv. 2
         - Note : 10 px / sec / touche c'est bien pour avoir un bon
             challenge.
 
+> Conventions : les fonctions et variables considérées internes à votre
+votre script sont préfixées par un trait bas `_`. Elles sont dites *privées*.
+Cela donne une indication de qui a le droit d'utiliser cette donnée, facilitant
+la lecture et la maintenance du code.
+Par exemple, `_vitesse` est une variable privée ; seule la balle elle-même
+a le droit de la modifier, car c'est sa responsabilité.
+
+### Explications : les fonctions virtuelles Godot
+
+Certaines méthodes préfixées par `_` sont des fonctions que Godot connaît
+et qu'il peut appeler pour vous donner le contrôle à certains moments.
+
+La méthode `_ready()` est appelée après que votre nœud soit entré en scène,
+et dès tous ses enfants sont prêts (c'est à dire que la fonction _ready() a
+été appelée pour chaque enfant). Cette méthode est présente dans de nombreux scripts pour
+préparer un nœud.
+
+
+La méthode `_process` est appelée avant le rendu de chaque image. Cette méthode
+peut être utilisée pour coder la logique de votre jeu (gagner des points ou de la vie
+par exemple) ou pour modifier l'apparence de votre nœud (changer la couleur de votre objet au fil du temps).
+Par défaut, cette fonction est appelée 60 fois par seconde, mais dépend de la fréquence de rafraîchissement
+de votre écran.
+
+La méthode `_physics_process` est appelée à chaque fois que Godot résoud
+les calculs physiques permettant de déplacer vos objets. Cette fonction est importante
+pour appliquer des forces ou déplacer vos objets.
+Par défaut, cette fonction est appelée 50 fois par seconde, mais cela peut se paramétrer.
+
+> Note : les fonctions `_process` et `_physics_process` reçoivent un nombre à virgules, `delta: float`,
+qui représente le nombre de secondes depuis la dernière fois ou la fonction est appelée. Dans l'idéal,
+ce nombre est très souvent fixe, mais il peut varier selon la performance de l'appareil. Il faut donc le prendre en compte
+pour vos calculs liés au temps. Par exemple, si un objet se déplace à 40 pixels par seconde, on écrira :
+
+```gd
+func _physics_process(delta: float) -> void:
+	position.x += 40.0 * delta
+```
+
+Enfin, la méthode `_unhandled_input()` est appelée quand un périphérique est actionné :
+quand une touche de clavier est enfoncée, quand la souris a bougé, un joystick de manette s'est déplacé,
+quand un bouton de manette est relâché. Elle prend un argument qui décrit l'événement qui a eu lieu.
+
+> Note : la fonction `_input()` existe aussi, mais préférez `_unhandled_input` qui appelée seulement si
+l'événement n'a pas déjà été consommé par un autre nœud.
+
+Il existe d'autres méthodes virtuelles exposées par Godot, mais vous connaissez maintenant les plus
+utiles.
 
 ## Le carrefour Godot