6 Achegas e9e23a89dc ... 21aa4ae2a0

Autor SHA1 Mensaxe Data
  DricomDragon 21aa4ae2a0 :memo: Mieux clic menu hai 3 días
  DricomDragon 24b0425c6c Mieux inserer musique hai 3 días
  DricomDragon d2c89ecfe5 :memo: Explique les fonctions virtuelles Godot hai 3 días
  DricomDragon 3185053068 Mieux afficher ecran de victoire hai 3 días
  DricomDragon 4a5c605f6a Ajoute illustration pour voir methode Godot hai 3 días
  DricomDragon fc304d0e60 :memo: Etape partie perdue hai 3 días
Modificáronse 2 ficheiros con 81 adicións e 29 borrados
  1. 81 29
      guide/complet.md
  2. BIN=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 :
         <https://docs.godotengine.org/fr/4.x/classes/class_signal.html>
 
+
 ## Afficher un écran de game over
 
 
@@ -498,30 +499,30 @@ Niv. 1
 
 
 - 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
-        "lancer_balle()").
+        `lancer_balle()`).
     - Brancher dans chaque niveau :
         - 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
-            "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
 
-
-
 Niv. 3 : beaucoup d'étapes
 
 
 - 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.
     - 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
         - Ajouter votre nouvelle scène en tant que nœud enfant de
             Message
@@ -529,7 +530,7 @@ Niv. 3 : beaucoup d'étapes
             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.
 
 
@@ -537,7 +538,6 @@ détruire le lanceur détruit aussi toutes les balles.
 ## Faire accélérer la balle
 
 
-
 Niv. 2
 
 
@@ -561,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
 
@@ -592,20 +640,20 @@ positionnel en 3 dimensions).
 
 - Actions
     - 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 !
     - Dans le champs Bus dans l'inspecteur, sélectionner : Musique
     - Cocher le champs "Autoplay".
     - Enfin dans la section "Process" changer le champs "Mode"
         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
     - Le nœud AudioStreamPlayer :
         <https://docs.godotengine.org/fr/4.x/classes/class_audiostreamplayer.html>
 
 
-
 ## 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 :
         - Ajouter un AudioStreamPlayer dans la scène
             "pause_menu.tscn"
-        - Nommer l'AudioStreamPlayer : "clic_sound".
+        - Nommer l'AudioStreamPlayer : *SonClic*.
         - 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
-        - 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 :
         - 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
             l'AudioStreamPlayer.
         - 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=BIN
guide/img/editor_signal_decocher_methodes_script_seulement.png