6 Commits e9e23a89dc ... 21aa4ae2a0

Author SHA1 Message Date
  DricomDragon 21aa4ae2a0 :memo: Mieux clic menu 3 days ago
  DricomDragon 24b0425c6c Mieux inserer musique 3 days ago
  DricomDragon d2c89ecfe5 :memo: Explique les fonctions virtuelles Godot 3 days ago
  DricomDragon 3185053068 Mieux afficher ecran de victoire 3 days ago
  DricomDragon 4a5c605f6a Ajoute illustration pour voir methode Godot 3 days ago
  DricomDragon fc304d0e60 :memo: Etape partie perdue 3 days ago
2 changed files with 81 additions and 29 deletions
  1. 81 29
      guide/complet.md
  2. BIN
      guide/img/editor_signal_decocher_methodes_script_seulement.png

+ 81 - 29
guide/complet.md

@@ -490,6 +490,7 @@ de votre code. Vos collègues ou le futur vous-même vous remerciera !
     - Référence :
     - Référence :
         <https://docs.godotengine.org/fr/4.x/classes/class_signal.html>
         <https://docs.godotengine.org/fr/4.x/classes/class_signal.html>
 
 
+
 ## Afficher un écran de game over
 ## Afficher un écran de game over
 
 
 
 
@@ -498,30 +499,30 @@ Niv. 1
 
 
 
 
 - Action
 - Action
-    - Dé-commenter le signal "partie_perdu" dans la scène du
-        lanceur.
+    - Ajouter un signal "partie_perdu" dans la scène du
+        lanceur. Ce sera un signal brut, sans argument.
     - L'émettre quand il n'y a plus de balle (fonction
     - L'émettre quand il n'y a plus de balle (fonction
-        "lancer_balle()").
+        `lancer_balle()`).
     - Brancher dans chaque niveau :
     - Brancher dans chaque niveau :
         - Le signal partie_perdue du lanceur vers le nœud "Message"
         - Le signal partie_perdue du lanceur vers le nœud "Message"
-            et sa fonction "show()".
+            et sa fonction `show()`. C'est une fonction Godot, vous
+			devez décocher "Scripts Methods Only" pour voir cette méthode.
         - Le signal partie_perdue du lanceur vers le nœud
         - Le signal partie_perdue du lanceur vers le nœud
-            "Message/Perdu" et sa fonction "show()".
+            "Message/Perdu" et sa fonction `show()`.
 
 
+![Brancher un signal a une methode Godot](img/editor_signal_decocher_methodes_script_seulement.png).
 
 
 
 
 ## Afficher un écran de victoire
 ## Afficher un écran de victoire
 
 
-
-
 Niv. 3 : beaucoup d'étapes
 Niv. 3 : beaucoup d'étapes
 
 
 
 
 - Actions
 - Actions
-    - S'inspirer de l'écran de game over pour créer l'écran de
+    - S'inspirer de la scène game over `perdu.tscn` pour créer la scène de
         victoire.
         victoire.
     - Comprendre la logique de comptage des briques -> code à
     - Comprendre la logique de comptage des briques -> code à
-        dé-commenter dans conteneur_briques.gd
+        dé-commenter dans `conteneur_briques.gd`
     - Afficher le message dans chaque niveau
     - Afficher le message dans chaque niveau
         - Ajouter votre nouvelle scène en tant que nœud enfant de
         - Ajouter votre nouvelle scène en tant que nœud enfant de
             Message
             Message
@@ -529,7 +530,7 @@ Niv. 3 : beaucoup d'étapes
             détruire lanceur).
             détruire lanceur).
 
 
 
 
-Note : comme les balles créées par le lanceur sont des nœuds enfants,
+> Note : comme les balles créées par le lanceur sont des nœuds enfants,
 détruire le lanceur détruit aussi toutes les balles.
 détruire le lanceur détruit aussi toutes les balles.
 
 
 
 
@@ -537,7 +538,6 @@ détruire le lanceur détruit aussi toutes les balles.
 ## Faire accélérer la balle
 ## Faire accélérer la balle
 
 
 
 
-
 Niv. 2
 Niv. 2
 
 
 
 
@@ -561,6 +561,54 @@ Niv. 2
         - Note : 10 px / sec / touche c'est bien pour avoir un bon
         - Note : 10 px / sec / touche c'est bien pour avoir un bon
             challenge.
             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
 ## Le carrefour Godot
 
 
@@ -592,20 +640,20 @@ positionnel en 3 dimensions).
 
 
 - Actions
 - Actions
     - Ajouter un nœud AudioStreamplayer dans la scène de niveau.
     - Ajouter un nœud AudioStreamplayer dans la scène de niveau.
-    - Charger la musique voulu dans le champs "Stream" de
-        l'AudioStreamPlayer dans l'inspecteur.
+    - Charger la musique voulue dans le champs "Stream" de
+        l'AudioStreamPlayer dans l'inspecteur. Des musiques
+		sont disponibles dans le dossier `ressources/musiques`.
     - Bien penser à cocher `loop` pour les musiques importées !
     - Bien penser à cocher `loop` pour les musiques importées !
     - Dans le champs Bus dans l'inspecteur, sélectionner : Musique
     - Dans le champs Bus dans l'inspecteur, sélectionner : Musique
     - Cocher le champs "Autoplay".
     - Cocher le champs "Autoplay".
     - Enfin dans la section "Process" changer le champs "Mode"
     - Enfin dans la section "Process" changer le champs "Mode"
         pour la valeur "Always" (sinon la musique se mettra en pause
         pour la valeur "Always" (sinon la musique se mettra en pause
-        lors de l'affichage du menu pause.
+        lors de l'affichage du menu pause.)
 - Référence
 - Référence
     - Le nœud AudioStreamPlayer :
     - Le nœud AudioStreamPlayer :
         <https://docs.godotengine.org/fr/4.x/classes/class_audiostreamplayer.html>
         <https://docs.godotengine.org/fr/4.x/classes/class_audiostreamplayer.html>
 
 
 
 
-
 ## Faire un bruit au clic sur bouton début
 ## Faire un bruit au clic sur bouton début
 
 
 
 
@@ -617,27 +665,31 @@ Niv. 2
     - Ajout du son de clic bouton dans le Menu Pause :
     - Ajout du son de clic bouton dans le Menu Pause :
         - Ajouter un AudioStreamPlayer dans la scène
         - Ajouter un AudioStreamPlayer dans la scène
             "pause_menu.tscn"
             "pause_menu.tscn"
-        - Nommer l'AudioStreamPlayer : "clic_sound".
+        - Nommer l'AudioStreamPlayer : *SonClic*.
         - Charger le son de clic dans le champs "Stream" de
         - Charger le son de clic dans le champs "Stream" de
-            l'AudioStreamPlayer.
+            l'AudioStreamPlayer : `composants/interface/clic_sfx.wav`
         - Dans le champs Bus dans l'inspecteur, sélectionner : Bruits
         - Dans le champs Bus dans l'inspecteur, sélectionner : Bruits
-        - Ajouter "get_node("clic_sound").play()" dans les
-            fonctions "_quand_bouton_reprendre_est_presse()",
-            "_quand_bouton_retour_titre_est_presse()" et
-            "_quand_bouton_quitter_est_presse()" dans le script
-            "pause_menu.gd".
+		- Choix 1 : Brancher les signaux `pressed` de chaque bouton à la fonction
+			interne `play` de l'AudioStreamPlayer.
+        - Choix 2 : Ajouter `$SonClic.play()` dans les
+            fonctions `_quand_bouton_reprendre_est_presse()`,
+            `_quand_bouton_retour_titre_est_presse()` et
+            `_quand_bouton_quitter_est_presse()` du script
+            `pause_menu.gd`.
     - Ajout du son de clic bouton sur les planètes du Menu Principal :
     - Ajout du son de clic bouton sur les planètes du Menu Principal :
         - Ajouter un AudioStreamPlayer dans la scène
         - Ajouter un AudioStreamPlayer dans la scène
-            "choix_niveau.tscn" en enfant du nœud
-            "DefilementNiveaux".
-        - Nommer l'AudioStreamPlayer : "clic_sound".
+            `choix_niveau.tscn` en enfant du nœud
+            *DefilementNiveaux*.
+        - Nommer l'AudioStreamPlayer : *SonClic*.
         - Charger le son de clic dans le champs "Stream" de
         - Charger le son de clic dans le champs "Stream" de
             l'AudioStreamPlayer.
             l'AudioStreamPlayer.
         - Dans le champs Bus dans l'inspecteur, sélectionner : Bruits
         - Dans le champs Bus dans l'inspecteur, sélectionner : Bruits
-        - Ajouter
-            "get_parent().get_parent().get_node("clic_sound").play()"
-            dans la fonction "_quand_planete_est_cliquee()" dans
-            le script "planete.gd".
+		- Choix 1 : Brancher les signaux `pressed` de chaque bouton planète
+			à la fonction `play` de *SonClic*
+        - Choix 2 : Clic droit sur le nœud *SonClic* puis "% Access as Unique Name".
+			Puis ajouter `%SonClic.play()`
+            dans la fonction `_quand_planete_est_cliquee()` dans
+            le script `planete.gd`.
 
 
 
 
 
 

BIN
guide/img/editor_signal_decocher_methodes_script_seulement.png