Browse Source

:memo: Expliquer le javelot

DricomDragon 1 year ago
parent
commit
7594ccf203
1 changed files with 51 additions and 34 deletions
  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
     -   Rapidité et facilités de création et de prototypage (idéal pour
         faire des game jam),
         faire des game jam),
     -   Beaucoup d'outils accessibles sans code,
     -   Beaucoup d'outils accessibles sans code,
@@ -262,7 +262,7 @@ scènes qui composent le jeu.
 
 
 -   Expliquer l'architecture des dossiers
 -   Expliquer l'architecture des dossiers
     -   Les dossiers des deux projets sont organisés de manière
     -   Les dossiers des deux projets sont organisés de manière
-        suivante  :
+        suivante  :
         -   "Composants", contient tous les composants qui une fois
         -   "Composants", contient tous les composants qui une fois
             assemblés forment le jeu. On y trouve donc les scènes,
             assemblés forment le jeu. On y trouve donc les scènes,
             script, visuels et sons pour : les interfaces, les objets
             script, visuels et sons pour : les interfaces, les objets
@@ -526,7 +526,7 @@ Niv. 3
     -   Réf AnimatedSprite2D#flip_v :
     -   Réf AnimatedSprite2D#flip_v :
         <https://docs.godotengine.org/fr/4.x/classes/class_sprite2d.html#class-sprite2d-property-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
 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 à
 dans une variable pour éviter de demander à Godot de chercher le nœud à
 chaque fois.
 chaque fois.
@@ -548,7 +548,7 @@ Niv. 4
     -   Associer l'image éclair au Sprite2D
     -   Associer l'image éclair au Sprite2D
     -   S'inspirer de l'effet de flamme pour alterner les valeurs de
     -   S'inspirer de l'effet de flamme pour alterner les valeurs de
         frame, flip_h et flip_v à intervalles réguliers.
         frame, flip_h et flip_v à intervalles réguliers.
-    -   Mode expert : alterner aussi avec 
+    -   Mode expert : alterner aussi avec une seconde image
 -   Doc
 -   Doc
     -   Référence : AnimatedSprite2D
     -   Référence : AnimatedSprite2D
         <https://docs.godotengine.org/fr/4.x/classes/class_sprite2d.html>
         <https://docs.godotengine.org/fr/4.x/classes/class_sprite2d.html>
@@ -567,7 +567,7 @@ Niv. 4
         pouvoir, alternative 2
         pouvoir, alternative 2
 -   Ressources
 -   Ressources
     -   Animation de récupération de pouvoir
     -   Animation de récupération de pouvoir
--   Action
+-   Actions
     -   Ajouter un nœud AnimatedSprite2D à la scène `recup_pouvoir`
     -   Ajouter un nœud AnimatedSprite2D à la scène `recup_pouvoir`
         dans le dossier `effets`
         dans le dossier `effets`
     -   Attention : il ne faut détruire la scène avec queue_free quand
     -   Attention : il ne faut détruire la scène avec queue_free quand
@@ -576,6 +576,18 @@ Niv. 4
     -   Référence :
     -   Référence :
         <https://docs.godotengine.org/fr/4.x/classes/class_animatedsprite2d.html>
         <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
 #### UI
@@ -603,12 +615,12 @@ Niv. 2
     -   ~~Nombre de balles dans le lanceur~~
     -   ~~Nombre de balles dans le lanceur~~
 -   Actions
 -   Actions
     -   Décommenter la variable "nombre_de_balles" à 0 dans la scène
     -   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.
     -   Ajouter signal "nb_balles_change" dans la scène du lanceur.
         -   Émettez le signal dans l'appel
         -   Émettez le signal dans l'appel
             "_decrementer_nombre_de_balles()".
             "_decrementer_nombre_de_balles()".
     -   Ajouter un label dans la scène de niveau.
     -   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.
         -   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"
     -   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 à l'impact d'une balle
 ##### Faire un bruit à l'impact d'une balle
 
 
 
 
@@ -775,7 +778,7 @@ Niv 1
     -   Ajouter le noeud AudioStreamPlayer dans la scene balle.
     -   Ajouter le noeud AudioStreamPlayer dans la scene balle.
     -   Charger le son "collision_sfx.wav" dans le champs "Stream"
     -   Charger le son "collision_sfx.wav" dans le champs "Stream"
         de l'AudioStreamPlayer dans l'inspecteur.
         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.
         de l'AudioStreamPlayer.
     -   Dans l'inspecteur de l'AudioStreamPlayer affecter le champs
     -   Dans l'inspecteur de l'AudioStreamPlayer affecter le champs
         "Bus" au bus : Bruits
         "Bus" au bus : Bruits
@@ -838,10 +841,6 @@ Niv. 1
 
 
 
 
 
 
-##### 
-
-
-
 ##### Bruit lorsqu'un pouvoir est récupéré
 ##### 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
     -   Repérer dans le script "pause_menu.gd" la fonction
         "_unhandled_input(event: InputEvent)" et ajouter dans le
         "_unhandled_input(event: InputEvent)" et ajouter dans le
         "else" de l'embranchement :
         "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.
         activer le "LowPassFilter" à l'apparition du menu pause.
     -   Repérer dans le script "pause_menu.gd" la fonction
     -   Repérer dans le script "pause_menu.gd" la fonction
         "reprendre()" et ajouter
         "reprendre()" et ajouter
@@ -1358,32 +1357,51 @@ avoir à créer l'objet associé.
 
 
 ##### Pouvoir laser
 ##### Pouvoir laser
 
 
+Niv. 4
 
 
 
 
-Niv. 4
+Permet à la raquette de lancer un javelot à haute énergie qui détruit tout sur son passage !
 
 
 
 
 -   Prérequis
 -   Prérequis
-    -   Assets graphiques javelot.
+    -   Assets graphiques javelot
 -   Actions
 -   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
     -   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
 ##### Pouvoir électrique
 
 
-
-
 Niv. 4
 Niv. 4
 
 
 La balle électrique possède une zone d'influence qui détruit les
 La balle électrique possède une zone d'influence qui détruit les
 briques à distance.
 briques à distance.
 
 
 
 
--   Prérequis
+- Dépend de laser
+- Prérequis
     -   Image de la balle électique (animée dans un autre chapitre)
     -   Image de la balle électique (animée dans un autre chapitre)
 -   Actions
 -   Actions
     -   Copier la scène balle de feu.
     -   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
     -   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
         touche une brique et le moment où celle-ci subit le dégât
 -   Docs
 -   Docs
-    -   Référence Area2D : 
-    -   Référence Timer : 
+    -   Référence Timer :