|
@@ -61,16 +61,16 @@ Légende de la carte :
|
|
- Le nombre de triangles sur chaque case de la carte indique la difficulté. 1 étant facile, et 4 difficile.
|
|
- Le nombre de triangles sur chaque case de la carte indique la difficulté. 1 étant facile, et 4 difficile.
|
|
|
|
|
|
|
|
|
|
-#### Décommenter le code
|
|
|
|
|
|
+#### Dé-commenter le code
|
|
|
|
|
|
-Il y aura du code déjà présent à décommenter dans les scripts. Essayez
|
|
|
|
|
|
+Il y aura du code déjà présent à dé-commenter dans les scripts. Essayez
|
|
de comprendre chaque bout de code vous-même.
|
|
de comprendre chaque bout de code vous-même.
|
|
|
|
|
|
-Les commentaires en Godot commencent avec `#`. Raccourci pour décommenter
|
|
|
|
-les lignes selectionnées : `Ctrl` + `K`.
|
|
|
|
|
|
+Les commentaires en Godot commencent avec `#`. Raccourci pour dé-commenter
|
|
|
|
+les lignes sélectionnées : `Ctrl` + `K`.
|
|
|
|
|
|
Note : les commentaires doubles `##` sont des commentaires spéciaux dits
|
|
Note : les commentaires doubles `##` sont des commentaires spéciaux dits
|
|
-de documentation (docstrings). Il ne faut pas les décommenter ! Le texte
|
|
|
|
|
|
+de documentation (docstrings). Il ne faut pas les dé-commenter ! Le texte
|
|
associé est visible dans l'éditeur.
|
|
associé est visible dans l'éditeur.
|
|
|
|
|
|
|
|
|
|
@@ -97,8 +97,8 @@ Partie théorique pour avoir un peu de contexte.
|
|
- Beaucoup d'outils accessibles sans code ;
|
|
- Beaucoup d'outils accessibles sans code ;
|
|
- GDScript (langage interne) facile à lire pour les débutants et
|
|
- GDScript (langage interne) facile à lire pour les débutants et
|
|
débutantes ;
|
|
débutantes ;
|
|
- - Possibilité de coder en C++ pour les développeureuses (ou
|
|
|
|
- d'autres languages via des addons) ;
|
|
|
|
|
|
+ - Possibilité de coder en C++ pour les développeur·euses (ou
|
|
|
|
+ d'autres langages via des addons) ;
|
|
- Bibliothèque d'addons disponible dans le moteur directement ;
|
|
- Bibliothèque d'addons disponible dans le moteur directement ;
|
|
- Aide accessible directement dans le moteur ;
|
|
- Aide accessible directement dans le moteur ;
|
|
- Espace de travail modulaire pour s'adapter aux préférences de
|
|
- Espace de travail modulaire pour s'adapter aux préférences de
|
|
@@ -145,7 +145,7 @@ Partie théorique pour avoir un peu de contexte.
|
|
besoin d'écrire beaucoup de texte pour faire fonctionner notre
|
|
besoin d'écrire beaucoup de texte pour faire fonctionner notre
|
|
jeu. Pour qu'un script soit interprété par Godot, il faut
|
|
jeu. Pour qu'un script soit interprété par Godot, il faut
|
|
l'attacher à un nœud, via l'éditeur.
|
|
l'attacher à un nœud, via l'éditeur.
|
|
- - Definition **variable** : valeur qui peut changer en cours du
|
|
|
|
|
|
+ - Définition **variable** : valeur qui peut changer en cours du
|
|
temps, que nous pouvons lire ou écrire depuis un script via son
|
|
temps, que nous pouvons lire ou écrire depuis un script via son
|
|
nom (exemple : boolean a_perdu_vie ; Vector2
|
|
nom (exemple : boolean a_perdu_vie ; Vector2
|
|
direction_rebond).
|
|
direction_rebond).
|
|
@@ -153,7 +153,7 @@ Partie théorique pour avoir un peu de contexte.
|
|
attribut (exemple : Vector2 position pour un Node2D).
|
|
attribut (exemple : Vector2 position pour un Node2D).
|
|
- Une variable qui est une entrée d'une fonction s'appelle
|
|
- Une variable qui est une entrée d'une fonction s'appelle
|
|
un **argument**
|
|
un **argument**
|
|
- - Definition **fonction** : bout de script associé à un nom qui
|
|
|
|
|
|
+ - Définition **fonction** : bout de script associé à un nom qui
|
|
est exécuté quand on l'appelle.
|
|
est exécuté quand on l'appelle.
|
|
- Une fonction attachée à un nœud s'appelle aussi **méthode**
|
|
- Une fonction attachée à un nœud s'appelle aussi **méthode**
|
|
- Le nom d'une fonction doit contenir un verbe, car appeler
|
|
- Le nom d'une fonction doit contenir un verbe, car appeler
|
|
@@ -183,21 +183,6 @@ Partie théorique pour avoir un peu de contexte.
|
|
vous héritez de Sprite2D, qui hérite lui-même de Node2D,
|
|
vous héritez de Sprite2D, qui hérite lui-même de Node2D,
|
|
votre script possède à la fois les propriétés de Sprite2D
|
|
votre script possède à la fois les propriétés de Sprite2D
|
|
(comme texture par exemple) et de Node2D (position).
|
|
(comme texture par exemple) et de Node2D (position).
|
|
-- Signaux (médium)
|
|
|
|
-
|
|
|
|
-Mécanique idéale pour faire communiquer des nœuds entre eux. Les signaux
|
|
|
|
-permettent d'envoyer des messages à zéro, un ou plusieurs destinataires
|
|
|
|
-en même temps. À chaque émission de signal correspond l'exécution
|
|
|
|
-d'une fonction pour tous les nœuds connectés à ce signal. Les nœuds de
|
|
|
|
-la bibliothèque offrent des signaux et des fonctions déjà utilisables,
|
|
|
|
-et il est possible d'en créer dans nos scripts.
|
|
|
|
-
|
|
|
|
-- Pas à pas :
|
|
|
|
- <https://docs.godotengine.org/fr/4.x/getting_started/step_by_step/signals.html>
|
|
|
|
- - Utiliser un signal dans un script :
|
|
|
|
- <https://docs.godotengine.org/fr/4.x/tutorials/scripting/gdscript/gdscript_basics.html#signals>
|
|
|
|
- - Référence :
|
|
|
|
- <https://docs.godotengine.org/fr/4.x/classes/class_signal.html>
|
|
|
|
|
|
|
|
- Espace / géométrie
|
|
- Espace / géométrie
|
|
- Les objets 2D sont positionnés dans l'espace via deux
|
|
- Les objets 2D sont positionnés dans l'espace via deux
|
|
@@ -236,9 +221,9 @@ scènes qui composent le jeu.
|
|
script, visuels et sons pour : les interfaces, les objets
|
|
script, visuels et sons pour : les interfaces, les objets
|
|
(balle, brique, capsule, arène, raquette, etc) et enfin les
|
|
(balle, brique, capsule, arène, raquette, etc) et enfin les
|
|
pouvoirs (balle de feu par exemple).
|
|
pouvoirs (balle de feu par exemple).
|
|
- - "Effets", qui contient les phénomènes éphèmères qui peuvent
|
|
|
|
|
|
+ - "Effets", qui contient les phénomènes éphémères qui peuvent
|
|
survenir en jeu. Au début de l'atelier le seul présent dans
|
|
survenir en jeu. Au début de l'atelier le seul présent dans
|
|
- la versian artisan est l'effet d'une brique qui éclate.
|
|
|
|
|
|
+ la version artisan est l'effet d'une brique qui éclate.
|
|
- "Exec", qui contient les principales scènes du jeu qui
|
|
- "Exec", qui contient les principales scènes du jeu qui
|
|
vont "s'exécuter". On y trouve la scène principale du jeu
|
|
vont "s'exécuter". On y trouve la scène principale du jeu
|
|
("game"), une scène de gestion de la musique et deux
|
|
("game"), une scène de gestion de la musique et deux
|
|
@@ -286,7 +271,7 @@ Niv. 1
|
|
- Ligne primaire tous les : x = 4 pas, et y = 8 pas.
|
|
- Ligne primaire tous les : x = 4 pas, et y = 8 pas.
|
|
- Dupliquer les nœuds Brique pour en créer de nouveaux et
|
|
- Dupliquer les nœuds Brique pour en créer de nouveaux et
|
|
placer-les dans le niveau.
|
|
placer-les dans le niveau.
|
|
- - Changer les paramètres de chaque brique indépendament dans
|
|
|
|
|
|
+ - Changer les paramètres de chaque brique indépendamment dans
|
|
l'Inspecteur.
|
|
l'Inspecteur.
|
|
|
|
|
|
Image : Capture de la configuration de la grille
|
|
Image : Capture de la configuration de la grille
|
|
@@ -295,7 +280,7 @@ Image : Capture de la configuration de la grille
|
|
- [ ] J'ai modifié un niveau existant !
|
|
- [ ] J'ai modifié un niveau existant !
|
|
- Suite
|
|
- Suite
|
|
- Parcours architecte : [Créer un autre niveau](#créer-un-autre-niveau)
|
|
- Parcours architecte : [Créer un autre niveau](#créer-un-autre-niveau)
|
|
- - Parcours artisan : [Changer l'image de la raquette](#)
|
|
|
|
|
|
+ - Parcours artisan : [Changer l'image de la raquette](#todo)
|
|
- Étape bonus : [Pouvoir scroller les planètes](#pouvoir-scroller-les-planètes)
|
|
- Étape bonus : [Pouvoir scroller les planètes](#pouvoir-scroller-les-planètes)
|
|
|
|
|
|
|
|
|
|
@@ -327,9 +312,6 @@ Niv. 1
|
|
Niv. 1
|
|
Niv. 1
|
|
|
|
|
|
|
|
|
|
-- Prérequis
|
|
|
|
- - Scène "choix_niveau.tscn" qui permet déjà de choisir un
|
|
|
|
- niveau.
|
|
|
|
- Actions
|
|
- Actions
|
|
- Ajouter un nœud ScrollContainer dans la scène
|
|
- Ajouter un nœud ScrollContainer dans la scène
|
|
"choix_niveau.tscn"
|
|
"choix_niveau.tscn"
|
|
@@ -340,7 +322,7 @@ Niv. 1
|
|
- Soit dans l'Inspecteur, section "Transform", champs
|
|
- Soit dans l'Inspecteur, section "Transform", champs
|
|
"Size", mettre les valeurs de X et Y à 420.
|
|
"Size", mettre les valeurs de X et Y à 420.
|
|
|
|
|
|
-- [ ] J'ai modifié un niveau existant !
|
|
|
|
|
|
+- [ ] J'ai activé le scrolling dans le choix du niveau !
|
|
- Suite
|
|
- Suite
|
|
- Parcours architecte : [Créer un autre niveau](#créer-un-autre-niveau)
|
|
- Parcours architecte : [Créer un autre niveau](#créer-un-autre-niveau)
|
|
- Parcours artisan : [Changer l'image de la raquette](#)
|
|
- Parcours artisan : [Changer l'image de la raquette](#)
|
|
@@ -349,11 +331,10 @@ Niv. 1
|
|
## Changer l'image de la raquette
|
|
## Changer l'image de la raquette
|
|
|
|
|
|
|
|
|
|
-
|
|
|
|
Niv. 1
|
|
Niv. 1
|
|
|
|
|
|
-La raquette est un composant on va donc trouver la scène qui lui est
|
|
|
|
-dédié dans le dossier "composants/objets/raquette".
|
|
|
|
|
|
+La raquette est un composant, on va donc trouver la scène qui lui est
|
|
|
|
+dédiée dans le dossier "composants/objets/raquette".
|
|
La scène est le fichier ".tscn" dans le dossier.
|
|
La scène est le fichier ".tscn" dans le dossier.
|
|
|
|
|
|
- Prérequis
|
|
- Prérequis
|
|
@@ -403,20 +384,11 @@ Niv. 1
|
|
- Prérequis
|
|
- Prérequis
|
|
- [Changer l'image de la raquette](#changer-l-image-de-la-raquette)
|
|
- [Changer l'image de la raquette](#changer-l-image-de-la-raquette)
|
|
|
|
|
|
-La raquette est un composant on va donc trouver la scène qui lui est
|
|
|
|
-dédiée dans le dossier "composants/objets/raquette".
|
|
|
|
-La scène est le fichier ".tscn" dans le dossier.
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- Actions
|
|
- Actions
|
|
- - Double-cliquer sur le fichier "raquette.tscn" pour oublir la
|
|
|
|
|
|
+ - Double-cliquer sur le fichier "raquette.tscn" pour ouvrir la
|
|
scène de la raquette.
|
|
scène de la raquette.
|
|
|
|
|
|
|
|
|
|
-La scène de la raquette est composée de 3 nœuds :
|
|
|
|
-- Un nœud StaticBody2D,
|
|
|
|
-- Un nœud Sprite2D,
|
|
|
|
-- Un nœud CollisionShape2D.
|
|
|
|
C'est le nœud Sprite2D, dénommé "image", qui va permettre de changer
|
|
C'est le nœud Sprite2D, dénommé "image", qui va permettre de changer
|
|
la couleur de la raquette.
|
|
la couleur de la raquette.
|
|
|
|
|
|
@@ -427,7 +399,7 @@ la couleur de la raquette.
|
|
|
|
|
|
Dans l'Inspecteur, dans la section "Visibility", on peut voir le
|
|
Dans l'Inspecteur, dans la section "Visibility", on peut voir le
|
|
champs "Self-Modulate". C'est le contenu de ce champ qu'il faut
|
|
champs "Self-Modulate". C'est le contenu de ce champ qu'il faut
|
|
-modifier pour changer l'image de la raquette dans le jeu.
|
|
|
|
|
|
+modifier pour changer la couleur de la raquette dans le jeu.
|
|
|
|
|
|
|
|
|
|
- Actions
|
|
- Actions
|
|
@@ -435,11 +407,11 @@ modifier pour changer l'image de la raquette dans le jeu.
|
|
couleurs.
|
|
couleurs.
|
|
- Choisir une couleur.
|
|
- Choisir une couleur.
|
|
- Cliquer en dehors de la fenêtre du nuancier pour la faire
|
|
- Cliquer en dehors de la fenêtre du nuancier pour la faire
|
|
- disparaitre et valider la couleur choisie.
|
|
|
|
|
|
+ disparaître et valider la couleur choisie.
|
|
|
|
|
|
|
|
|
|
Note : vous pouvez aussi changer la valeur du champ "Modulate" du
|
|
Note : vous pouvez aussi changer la valeur du champ "Modulate" du
|
|
-noeud racine `StaticBody2D`, ce qui change la couleur de tous les
|
|
|
|
|
|
+nœud racine `StaticBody2D`, ce qui change la couleur de tous les
|
|
enfants, y compris l'image.
|
|
enfants, y compris l'image.
|
|
|
|
|
|
- Suite
|
|
- Suite
|
|
@@ -458,17 +430,22 @@ si ça arrive, la partie est perdue !
|
|
|
|
|
|
- Actions
|
|
- Actions
|
|
- Ouvrir le script du lanceur.
|
|
- Ouvrir le script du lanceur.
|
|
- - Décommenter le code qui permet de configurer le nombre de balles
|
|
|
|
- via l'éditeur.
|
|
|
|
- - Écrire une fonction "_decrementer_nombre_de_balles() ->
|
|
|
|
|
|
+ - Dé-commenter le code qui permet de configurer le nombre de balles
|
|
|
|
+ via l'éditeur :
|
|
|
|
+ - `@export_range(1, 10) var nombre_de_balles: int = 3`
|
|
|
|
+ - Compléter la fonction "_decrementer_nombre_de_balles() ->
|
|
void".
|
|
void".
|
|
- Qui soustrait 1 au nombre de balles.
|
|
- Qui soustrait 1 au nombre de balles.
|
|
- Modifier la fonction "lancer_balle".
|
|
- Modifier la fonction "lancer_balle".
|
|
- Rajouter un test, s'il n'y a plus de balle, arrêter la
|
|
- Rajouter un test, s'il n'y a plus de balle, arrêter la
|
|
fonction avec le mot-clef "return".
|
|
fonction avec le mot-clef "return".
|
|
- - Note : "return" interrompt une fonction.
|
|
|
|
- - Astuce : afficher le nombre de balles après chaque
|
|
|
|
- décrémentation avec une fonction "print()"
|
|
|
|
|
|
+
|
|
|
|
+> Attention ! Pour faire une comparaison d'égalité, il faut
|
|
|
|
+utiliser l'opérateur `==` ! L'opérateur `=` permet d'assigner
|
|
|
|
+une valeur à une variable.
|
|
|
|
+> Note : "return" interrompt une fonction.
|
|
|
|
+> Astuce : afficher le nombre de balles après chaque
|
|
|
|
+ décrémentation avec une fonction `print()`
|
|
|
|
|
|
- Suite
|
|
- Suite
|
|
- Afficher le compteur de balles
|
|
- Afficher le compteur de balles
|
|
@@ -482,18 +459,36 @@ Niv. 2
|
|
|
|
|
|
|
|
|
|
- Actions
|
|
- Actions
|
|
- - Décommenter la variable `nombre_de_balles` à 0 dans le script `lanceur.gd` attaché à la scène `lanceur.tscn`.
|
|
|
|
- - Ajouter (si n'existe pas encore) 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.
|
|
|
|
|
|
+ - Dé-commenter la déclaration du signal `nb_balles_change` dans la scène du lanceur.
|
|
|
|
+ - Émettez le signal dans l'appel `_decrementer_nombre_de_balles()`.
|
|
|
|
+ - Ajouter la scène `Stock` dans un niveau, qui se trouve dans `composants/interface`
|
|
- 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.
|
|
|
|
|
|
|
|
+> Note : Le signal possède une méthode `emit`, qui permet d'émettre le signal.
|
|
|
|
+
|
|
|
|
+> Attention : Si le label renvoie une erreur : "Cannot convert argument 1 from int to String.", cela veut juste dire qu'il faut convertir la valeur de `nombre_de_balles` en String avant d'émettre le signal.
|
|
|
|
+
|
|
|
|
|
|
-> Note : Si le label renvoie une erreur : "Cannot convert argument 1 from int to String.", cela veut juste dire qu'il faut convertir la valeur de `nombre_de_balles` en String avant d'émettre le signal.
|
|
|
|
|
|
+### Explications : les signaux
|
|
|
|
+
|
|
|
|
+Mécanique idéale pour faire communiquer des nœuds entre eux. Les signaux
|
|
|
|
+permettent d'envoyer des messages à zéro, un ou plusieurs destinataires
|
|
|
|
+en même temps. À chaque émission de signal correspond l'exécution
|
|
|
|
+d'une fonction pour tous les nœuds connectés à ce signal. Les nœuds de
|
|
|
|
+la bibliothèque offrent des signaux et des fonctions déjà utilisables,
|
|
|
|
+et il est possible d'en créer dans nos scripts.
|
|
|
|
|
|
|
|
+Il est recommandé d'utiliser le plus possible les signaux, afin de minimiser
|
|
|
|
+les dépendances entre vos nœuds et scripts. Cela facilitera l'organisation
|
|
|
|
+de votre code. Vos collègues ou le futur vous-même vous remerciera !
|
|
|
|
|
|
|
|
+- Pas à pas :
|
|
|
|
+ <https://docs.godotengine.org/fr/4.x/getting_started/step_by_step/signals.html>
|
|
|
|
+ - Utiliser un signal dans un script :
|
|
|
|
+ <https://docs.godotengine.org/fr/4.x/tutorials/scripting/gdscript/gdscript_basics.html#signals>
|
|
|
|
+ - Référence :
|
|
|
|
+ <https://docs.godotengine.org/fr/4.x/classes/class_signal.html>
|
|
|
|
|
|
## Afficher un écran de game over
|
|
## Afficher un écran de game over
|
|
|
|
|
|
@@ -503,7 +498,7 @@ Niv. 1
|
|
|
|
|
|
|
|
|
|
- Action
|
|
- Action
|
|
- - Décommenter le signal "partie_perdu" dans la scène du
|
|
|
|
|
|
+ - Dé-commenter le signal "partie_perdu" dans la scène du
|
|
lanceur.
|
|
lanceur.
|
|
- 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()").
|
|
@@ -526,7 +521,7 @@ Niv. 3 : beaucoup d'étapes
|
|
- S'inspirer de l'écran de game over pour créer l'écran de
|
|
- S'inspirer de l'écran de game over pour créer l'écran 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
|
|
@@ -555,12 +550,12 @@ Niv. 2
|
|
vitesse de la balle.
|
|
vitesse de la balle.
|
|
- Pour appliquer la nouvelle vitesse, vous devez aussi appeler
|
|
- Pour appliquer la nouvelle vitesse, vous devez aussi appeler
|
|
la fonction "_mettre_mouvement".
|
|
la fonction "_mettre_mouvement".
|
|
- - Alternative 1 : accélerer à chaque touche de raquette.
|
|
|
|
|
|
+ - Alternative 1 : accélérer à chaque touche de raquette.
|
|
- Dans "_physics_process" : Appeler "_accelerer" après
|
|
- Dans "_physics_process" : Appeler "_accelerer" après
|
|
chaque rebond sur une raquette.
|
|
chaque rebond sur une raquette.
|
|
- Note : 50 px / sec / touche c'est bien pour avoir un bon
|
|
- Note : 50 px / sec / touche c'est bien pour avoir un bon
|
|
challenge.
|
|
challenge.
|
|
- - Alternative 2 : accélerer à chaque rebond.
|
|
|
|
|
|
+ - Alternative 2 : accélérer à chaque rebond.
|
|
- Dans "_physics_process" : Appeler "_accelerer" après
|
|
- Dans "_physics_process" : Appeler "_accelerer" après
|
|
chaque rebond.
|
|
chaque rebond.
|
|
- Note : 10 px / sec / touche c'est bien pour avoir un bon
|
|
- Note : 10 px / sec / touche c'est bien pour avoir un bon
|
|
@@ -657,7 +652,7 @@ Niv. 1
|
|
- Prérequis
|
|
- Prérequis
|
|
- Scène de partie perdu : "perdu.tscn".
|
|
- Scène de partie perdu : "perdu.tscn".
|
|
- Actions
|
|
- Actions
|
|
- - Ajouter un noeud AudioStreamPlayer dans la scène "perdu.tscn".
|
|
|
|
|
|
+ - Ajouter un nœud AudioStreamPlayer dans la scène "perdu.tscn".
|
|
- Charger le son de partie perdu (game over) dans le champs
|
|
- Charger le son de partie perdu (game over) dans le champs
|
|
"Stream" de l'AudioStreamPlayer.
|
|
"Stream" de l'AudioStreamPlayer.
|
|
- Dans le champs Bus dans l'inspecteur, sélectionner : Bruits
|
|
- Dans le champs Bus dans l'inspecteur, sélectionner : Bruits
|
|
@@ -677,7 +672,7 @@ Niv 1
|
|
- La brique fait un bruit en explosant
|
|
- La brique fait un bruit en explosant
|
|
- La balle avec un signal rebondi
|
|
- La balle avec un signal rebondi
|
|
- Actions
|
|
- Actions
|
|
- - Ajouter le noeud AudioStreamPlayer dans la scene balle.
|
|
|
|
|
|
+ - Ajouter le nœud 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()
|
|
@@ -743,7 +738,7 @@ Niv. 3
|
|
"brique.gd".
|
|
"brique.gd".
|
|
- const EclatementScene: PackedScene =
|
|
- const EclatementScene: PackedScene =
|
|
preload("res://effets/eclatement_brique/eclatement_effet.tscn").
|
|
preload("res://effets/eclatement_brique/eclatement_effet.tscn").
|
|
- - Instancier la scene et l'ajouter à l'arbre au moment du
|
|
|
|
|
|
+ - Instancier la scène et l'ajouter à l'arbre au moment du
|
|
rebond dans le script de la balle.
|
|
rebond dans le script de la balle.
|
|
|
|
|
|
- Suite
|
|
- Suite
|
|
@@ -852,17 +847,17 @@ Niv. 3
|
|
|
|
|
|
- Actions
|
|
- Actions
|
|
- Modifier "brique.gd" comme suit :
|
|
- Modifier "brique.gd" comme suit :
|
|
- - Décommenter la constante "NOMBRE_DE_VIES_MAX".
|
|
|
|
- - Décommenter la variable "nombre_de_vies".
|
|
|
|
|
|
+ - Dé-commenter la constante "NOMBRE_DE_VIES_MAX".
|
|
|
|
+ - Dé-commenter la variable "nombre_de_vies".
|
|
- Modifier la fonction "frapper" pour réduire les points de
|
|
- Modifier la fonction "frapper" pour réduire les points de
|
|
vie, et ne mourir que s'il n'en reste plus.
|
|
vie, et ne mourir que s'il n'en reste plus.
|
|
- - Décommenter "_montrer_nombre_de_vies" et la fonction
|
|
|
|
|
|
+ - Dé-commenter "_montrer_nombre_de_vies" et la fonction
|
|
qui l'appelle.
|
|
qui l'appelle.
|
|
- Modifier les niveaux pour ajuster la vie.
|
|
- Modifier les niveaux pour ajuster la vie.
|
|
- Ouvrir le niveau carré simple.
|
|
- Ouvrir le niveau carré simple.
|
|
- Mettre 4 vies au bloc central.
|
|
- Mettre 4 vies au bloc central.
|
|
- Astuce : vous pouvez sélectionner plusieurs briques
|
|
- Astuce : vous pouvez sélectionner plusieurs briques
|
|
- en les selectionnant.
|
|
|
|
|
|
+ en les sélectionnant.
|
|
- La propriété nombre de vies est visible dans
|
|
- La propriété nombre de vies est visible dans
|
|
l'éditeur grâce au préfixe "@export".
|
|
l'éditeur grâce au préfixe "@export".
|
|
|
|
|
|
@@ -893,7 +888,7 @@ dégradé vers le rouge à la place.
|
|
- La brique a des vies
|
|
- La brique a des vies
|
|
- Actions
|
|
- Actions
|
|
- Chercher le dossier contenant les composants de la brique.
|
|
- Chercher le dossier contenant les composants de la brique.
|
|
- - Décommenter le code en rapport avec la vie de la brique dans le
|
|
|
|
|
|
+ - Dé-commenter le code en rapport avec la vie de la brique dans le
|
|
script "brique.gd".
|
|
script "brique.gd".
|
|
|
|
|
|
|
|
|
|
@@ -933,7 +928,7 @@ Niv. 4
|
|
- Modifier l'arène pour que la zone du bas, appelée
|
|
- Modifier l'arène pour que la zone du bas, appelée
|
|
ZoneExterieure, détecte les collisions avec les briques
|
|
ZoneExterieure, détecte les collisions avec les briques
|
|
(collision_layer: mask)
|
|
(collision_layer: mask)
|
|
- - Faire en sorte que l'arène envoit un signal quand une brique
|
|
|
|
|
|
+ - Faire en sorte que l'arène envoie un signal quand une brique
|
|
est détectée par la zone extérieure
|
|
est détectée par la zone extérieure
|
|
- Relier ce signal au même signal que le game over classique
|
|
- Relier ce signal au même signal que le game over classique
|
|
|
|
|
|
@@ -957,7 +952,7 @@ Niv. 3
|
|
- Ajouter un frein sur la balle.
|
|
- Ajouter un frein sur la balle.
|
|
- Ajouter la balle dans le "groupe_des_balles".
|
|
- Ajouter la balle dans le "groupe_des_balles".
|
|
- Voir : Avoir un nombre de vies limité.
|
|
- Voir : Avoir un nombre de vies limité.
|
|
- - Décommenter la méthode "ralentir".
|
|
|
|
|
|
+ - Dé-commenter la méthode "ralentir".
|
|
- Créer un nouveau pouvoir.
|
|
- Créer un nouveau pouvoir.
|
|
- Copier le script "bonjour_pouvoir.gd" et le renommer en
|
|
- Copier le script "bonjour_pouvoir.gd" et le renommer en
|
|
"pouvoir_ralentir.gd".
|
|
"pouvoir_ralentir.gd".
|
|
@@ -972,8 +967,8 @@ Niv. 3
|
|
pouvoir :
|
|
pouvoir :
|
|
- les textures possibles sont dans le dossier
|
|
- les textures possibles sont dans le dossier
|
|
"composants/objets/brique/images/".
|
|
"composants/objets/brique/images/".
|
|
- - L'association est faite dans la "methode
|
|
|
|
- _associe_texture_brique" dans "brique.gd".
|
|
|
|
|
|
+ - L'association est faite dans la méthode
|
|
|
|
+ "_associe_texture_brique" dans "brique.gd".
|
|
- Associer votre nouveau pouvoir à une brique dans un niveau.
|
|
- Associer votre nouveau pouvoir à une brique dans un niveau.
|
|
- Écrire l'effet du pouvoir dans "declencher_pouvoir".
|
|
- Écrire l'effet du pouvoir dans "declencher_pouvoir".
|
|
- Écrire l'effet du pouvoir dans "declencher_pouvoir" :
|
|
- Écrire l'effet du pouvoir dans "declencher_pouvoir" :
|
|
@@ -988,7 +983,7 @@ Niv. 3
|
|
- Note : préfixer un argument par "_" permet de dire à Godot que
|
|
- Note : préfixer un argument par "_" permet de dire à Godot que
|
|
c'est normal que l'argument ne soit pas utilisé.
|
|
c'est normal que l'argument ne soit pas utilisé.
|
|
- Documentation
|
|
- Documentation
|
|
- - Un vecteur normalisé a une longeur de 1 :
|
|
|
|
|
|
+ - Un vecteur normalisé a une longueur de 1 :
|
|
<https://docs.godotengine.org/fr/4.x/classes/class_vector2.html#class-vector2-method-normalized>
|
|
<https://docs.godotengine.org/fr/4.x/classes/class_vector2.html#class-vector2-method-normalized>
|
|
- Référence arbre des nœuds :
|
|
- Référence arbre des nœuds :
|
|
<https://docs.godotengine.org/fr/4.x/classes/class_scenetree.html>
|
|
<https://docs.godotengine.org/fr/4.x/classes/class_scenetree.html>
|
|
@@ -1014,7 +1009,7 @@ Niv. 1
|
|
- Possibilité 1 : signal
|
|
- Possibilité 1 : signal
|
|
- Ajouter un signal "capsule_recuperee"
|
|
- Ajouter un signal "capsule_recuperee"
|
|
- Émettre le signal
|
|
- Émettre le signal
|
|
- - Ajouter noeud AudioStreamPlayer
|
|
|
|
|
|
+ - Ajouter nœud AudioStreamPlayer
|
|
- Brancher le signal sur la fonction play() de
|
|
- Brancher le signal sur la fonction play() de
|
|
l'AudioStreamPlayer
|
|
l'AudioStreamPlayer
|
|
- Alternative 2 : son spatialisé -> effet graphique de récupération
|
|
- Alternative 2 : son spatialisé -> effet graphique de récupération
|
|
@@ -1155,7 +1150,7 @@ Niv. 3
|
|
- Modifier la rotation de l'image (propriété rotation)
|
|
- Modifier la rotation de l'image (propriété rotation)
|
|
- Appeler la fonction _diriger quand la balle se met en
|
|
- Appeler la fonction _diriger quand la balle se met en
|
|
mouvement
|
|
mouvement
|
|
- - décommenter le code
|
|
|
|
|
|
+ - dé-commenter le code
|
|
- Appeler la aussi quand elle rebondit
|
|
- Appeler la aussi quand elle rebondit
|
|
- idem pour _rebondir que _mettre_en_mouvement
|
|
- idem pour _rebondir que _mettre_en_mouvement
|
|
- Tester
|
|
- Tester
|
|
@@ -1188,7 +1183,7 @@ briques à distance.
|
|
|
|
|
|
- Dépend de laser
|
|
- Dépend de laser
|
|
- Prérequis
|
|
- Prérequis
|
|
- - Image de la balle électique (animée dans un autre chapitre)
|
|
|
|
|
|
+ - Image de la balle électrique (animée dans un autre chapitre)
|
|
- Actions
|
|
- Actions
|
|
- Copier la scène balle de feu.
|
|
- Copier la scène balle de feu.
|
|
- Le pouvoir électrique va fonctionner de manière analogue au
|
|
- Le pouvoir électrique va fonctionner de manière analogue au
|
|
@@ -1257,7 +1252,7 @@ Permet à la raquette de lancer un javelot à haute énergie qui détruit tout s
|
|
- Faire un nouveau pouvoir
|
|
- Faire un nouveau pouvoir
|
|
- Déclenchement
|
|
- Déclenchement
|
|
- Créée un nouveau javelot à l'endroit de la raquette
|
|
- Créée un nouveau javelot à l'endroit de la raquette
|
|
-- Débloque : fait un effet d'eruption à la surface de la raquette
|
|
|
|
|
|
+- Débloque : fait un effet d'éruption à la surface de la raquette
|
|
- Docs
|
|
- Docs
|
|
- [Comment utiliser les Area2D](https://docs.godotengine.org/fr/4.x/tutorials/physics/using_area_2d.html)
|
|
- [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)
|
|
- [Référence Area2D](https://docs.godotengine.org/fr/4.x/classes/class_area2d.html)
|
|
@@ -1422,11 +1417,11 @@ Niv. 4
|
|
- Actions
|
|
- Actions
|
|
- Ajouter un pouvoir.
|
|
- Ajouter un pouvoir.
|
|
- Mettre la raquette dans le groupe.
|
|
- Mettre la raquette dans le groupe.
|
|
- - Ajouter une methode publique "changer_taille" pour modifier
|
|
|
|
|
|
+ - Ajouter une méthode publique "changer_taille" pour modifier
|
|
sa taille.
|
|
sa taille.
|
|
- /! Il faut modifier la taille de l'image et la taille de
|
|
- /! Il faut modifier la taille de l'image et la taille de
|
|
l'enveloppe physique !
|
|
l'enveloppe physique !
|
|
- - Dans le déclenchement du pouvoir, appeler la methode
|
|
|
|
|
|
+ - Dans le déclenchement du pouvoir, appeler la méthode
|
|
"changer_taille" sur toutes les raquettes.
|
|
"changer_taille" sur toutes les raquettes.
|
|
|
|
|
|
|
|
|