Kaynağa Gözat

:memo: Expliquer le javelot

DricomDragon 10 ay önce
ebeveyn
işleme
7594ccf203
1 değiştirilmiş dosya ile 51 ekleme ve 34 silme
  1. 51 34
      guide/complet.md

+ 51 - 34
guide/complet.md

@@ -106,7 +106,7 @@ associé est visible dans l'éditeur.
 
 
 
--   Avantages  de Godot
+-   Avantages  de Godot
     -   Rapidité et facilités de création et de prototypage (idéal pour
         faire des game jam),
     -   Beaucoup d'outils accessibles sans code,
@@ -262,7 +262,7 @@ scènes qui composent le jeu.
 
 -   Expliquer l'architecture des dossiers
     -   Les dossiers des deux projets sont organisés de manière
-        suivante  :
+        suivante  :
         -   "Composants", contient tous les composants qui une fois
             assemblés forment le jeu. On y trouve donc les scènes,
             script, visuels et sons pour : les interfaces, les objets
@@ -526,7 +526,7 @@ Niv. 3
     -   Réf AnimatedSprite2D#flip_v :
         <https://docs.godotengine.org/fr/4.x/classes/class_sprite2d.html#class-sprite2d-property-flip-v>
 
- 
+
 Note pour améliorer la performance : stocker la référence vers le nœud
 dans une variable pour éviter de demander à Godot de chercher le nœud à
 chaque fois.
@@ -548,7 +548,7 @@ Niv. 4
     -   Associer l'image éclair au Sprite2D
     -   S'inspirer de l'effet de flamme pour alterner les valeurs de
         frame, flip_h et flip_v à intervalles réguliers.
-    -   Mode expert : alterner aussi avec 
+    -   Mode expert : alterner aussi avec une seconde image
 -   Doc
     -   Référence : AnimatedSprite2D
         <https://docs.godotengine.org/fr/4.x/classes/class_sprite2d.html>
@@ -567,7 +567,7 @@ Niv. 4
         pouvoir, alternative 2
 -   Ressources
     -   Animation de récupération de pouvoir
--   Action
+-   Actions
     -   Ajouter un nœud AnimatedSprite2D à la scène `recup_pouvoir`
         dans le dossier `effets`
     -   Attention : il ne faut détruire la scène avec queue_free quand
@@ -576,6 +576,18 @@ Niv. 4
     -   Référence :
         <https://docs.godotengine.org/fr/4.x/classes/class_animatedsprite2d.html>
 
+#### Effet d'éruption de la raquette
+
+- Dépend du pouvoir laser
+- Actions
+    - Créer une scène effet dans `effets/eruption`
+    - Utiliser un `AnimatedSprite2D` pour faire l'effet d'éruption
+    - Dans le TileSet
+        - Importer les trois images d'éruption
+        - Activer la lecture au chargement
+        - Désactiver la lecture en boucle
+    - Auto-détruire l'effet après l'animation
+        - Brancher le signal `animation_finished` à la méthode `queue_free()` du nœud racine
 
 
 #### UI
@@ -603,12 +615,12 @@ Niv. 2
     -   ~~Nombre de balles dans le lanceur~~
 -   Actions
     -   Décommenter la variable "nombre_de_balles" à 0 dans la scène
-        "lanceur.tscn". 
+        "lanceur.tscn".
     -   Ajouter signal "nb_balles_change" dans la scène du lanceur.
         -   Émettez le signal dans l'appel
             "_decrementer_nombre_de_balles()".
     -   Ajouter un label dans la scène de niveau.
-    -   Brancher le signal du  lanceur du niveau vers le compteur/label.
+    -   Brancher le signal du  lanceur du niveau vers le compteur/label.
         -   Répéter le branchement pour chaque niveau.
 
 
@@ -746,21 +758,12 @@ positionnel en 3 dimensions).
     -   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.
--   Référence 
+-   Référence
     -   Le nœud AudioStreamPlayer :
         <https://docs.godotengine.org/fr/4.x/classes/class_audiostreamplayer.html>
 
 
 
-##### 
-
-
-
-
-
-
-
-
 ##### Faire un bruit à l'impact d'une balle
 
 
@@ -775,7 +778,7 @@ Niv 1
     -   Ajouter le noeud AudioStreamPlayer dans la scene balle.
     -   Charger le son "collision_sfx.wav" dans le champs "Stream"
         de l'AudioStreamPlayer dans l'inspecteur.
-    -   Brancher le signal  "rebondi" de la balle à la fonction play()
+    -   Brancher le signal  "rebondi" de la balle à la fonction play()
         de l'AudioStreamPlayer.
     -   Dans l'inspecteur de l'AudioStreamPlayer affecter le champs
         "Bus" au bus : Bruits
@@ -838,10 +841,6 @@ Niv. 1
 
 
 
-##### 
-
-
-
 ##### Bruit lorsqu'un pouvoir est récupéré
 
 
@@ -942,7 +941,7 @@ et activer l'un de ses effets.
     -   Repérer dans le script "pause_menu.gd" la fonction
         "_unhandled_input(event: InputEvent)" et ajouter dans le
         "else" de l'embranchement :
-        "AudioServer.set_bus_effect_enabled(2,1, true)"  pour
+        "AudioServer.set_bus_effect_enabled(2,1, true)"  pour
         activer le "LowPassFilter" à l'apparition du menu pause.
     -   Repérer dans le script "pause_menu.gd" la fonction
         "reprendre()" et ajouter
@@ -1358,32 +1357,51 @@ avoir à créer l'objet associé.
 
 ##### Pouvoir laser
 
+Niv. 4
 
 
-Niv. 4
+Permet à la raquette de lancer un javelot à haute énergie qui détruit tout sur son passage !
 
 
 -   Prérequis
-    -   Assets graphiques javelot.
+    -   Assets graphiques javelot
 -   Actions
+    - Créer le javelot dans le dossier `javelot`
+        - La racine de la scène est un `Node2D`
+        - Ajouter l'image du javelot `mcJavelot.png`
+        - Utiliser une `Area2D` pour déterminer la zone de destruction
+            - Donner lui une forme en ajoutant un enfant `CollisionShape2D`
+            - Définir une forme carrée au sommet de la flèche
+        - Coder le comportement du javelot
+            - Attachez un nouveau script au javelot
+                - Monter le javelot à chaque image
+                    - Pensez à utiliser l'argument `delta` de `physics_process`
+                - Créer une fonction `_quand_corps_entre_dans_zone_destructive`
+                    - La fonction prend en argument un `corps: Node2D`
+                    - Brancher le signal `body_entered` de la zone de destruction à cette fonction
+                    - Si le corps est une brique, frapper là !
+    - Auto-détruire le javelot lorsqu'il sort de l'écran
+        - Ajouter le nœud `VisibleOnScreenNotifier2D`
+        - Brancher le signal `screen_exited` à la méthode `queue_free()` du nœud racine
     -   Faire un nouveau pouvoir
-    -   Déclenchement : ajoute une scène temporaire, le javelot, qui
-        part de la raquette, qui va vers le haut et qui détruit toutes
-        les briques sur son passage
-
+    -   Déclenchement
+        - Créée un nouveau javelot à l'endroit de la raquette
+- Débloque : fait un effet d'eruption à la surface de la raquette
+- Docs
+    - [Comment utiliser les Area2D](https://docs.godotengine.org/fr/4.x/tutorials/physics/using_area_2d.html)
+    - [Référence Area2D](https://docs.godotengine.org/fr/4.x/classes/class_area2d.html)
 
 
 ##### Pouvoir électrique
 
-
-
 Niv. 4
 
 La balle électrique possède une zone d'influence qui détruit les
 briques à distance.
 
 
--   Prérequis
+- Dépend de laser
+- Prérequis
     -   Image de la balle électique (animée dans un autre chapitre)
 -   Actions
     -   Copier la scène balle de feu.
@@ -1395,8 +1413,7 @@ briques à distance.
     -   Bonus : rajouter un délai entre le moment où la zone électrique
         touche une brique et le moment où celle-ci subit le dégât
 -   Docs
-    -   Référence Area2D : 
-    -   Référence Timer : 
+    -   Référence Timer :