Baba des bois
1:20 Initialisation du projet
- nouveau projet - Interface
- système de fichiers res:// - Interface
- import de sprites - Interface
3:30 Votre première scène
- système de nœuds - Interface
- Node2D - Noeud
- KinematicBody2D – Nœud
- Sprite - Noeud
- Sprite – Ajout d’une texture – Interface
- import des images, 2DPixel – Interface
- lancement du jeu – Interface
- placement des nœuds – Interface
- vérouiller le placement d’un nœud – Interface
- créer un script pour un nœud – Interface
10:06 Les bases de GDscript : Les variables
- les commentaires avec # - GDScript
- déclaration d’une variable – GDScript
- types de variables – GDScript
- la fonction __ready() - GDScript
- tabulations – GDScript
- la fonction print(), la console – GDScript
- typer une variable (int, float, String, bool) – GDScript
22:00 Les bases de GDscript : Les fonctions
- déclaration d’une fonction func – GDScript
- arguments d’une fonction – GDScript
- retourner une valeur avec return – GDScript
- typer le return d’une fonction avec -> - GDScript
29:30 Les deplacements
- le mot clé pass – GDScript
- condition if – GDScript
- la fonction _input() – GDScript
- la fonction is_action_pressed() – GDScript
- variables locales – GDScript
- la fonction move_and_slide() – GDScript
- le type Vector2 – GDScript
- la fonction _process() – GDScript
0:12 Scene & instances de scenes
- Sauvegarder la branche comme scène – Nœud
- Créer des instances de scène – Nœud
- Modifier un paramètre d’une instance de scène – Nœud
3:15 Tilemap
- Tilemap – Nœud
- Tilemap créer un tileset – Interface
- Tilemap créer des tuilles (tiles) – Interface
- Tilemap taille des tuilles (Cell) – Interface
- Tilemap - Atlas – Interface
- Tilemap – Copier / coller des groupes de tiles – Interface
- Tilemap – Faire des lignes et des carrés de tiles – Interface
- Affichage des nœuds – Noeud
9:17 Les collisions du Tilemap
- Tilemap – Les collisions – Interface
- CollisionShape2D – Nœud
- CollisionShape2D - définir le Shape – Nœud
- Débogage – Formes de collisions visibles – Interface
0:22 AnimatedSprite & SpriteFrame
- Changer le type d’un nœud – Interface
- AnimatedSprite – Nœud
- AnimatedSprite – créer SpriteFrames– Interface
- AnimatedSprite – découper spritesheet en frames – Interface
- AnimatedSprite – Créer animation – Interface
- AnimatedSprite – Jouer animation – Interface
- AnimatedSprite – Vitesse de l’animation – Interface
- AnimatedSprite – Ajouter une autre animation – Interface
3:48 Petite correction de mouvements
- Changement de event à Input – GDScript
4:43 Les conditions
- les conditions if – else – GDScript
- comparaison ==, != – GDScript
10:02 Implémentation des animations
- test des directions – GDScript
- déclarations de variables avec onready – GDScript
- récupérer un nœud enfant la fonction get_node() - GDScript
- AnimatedSprite – play() - jouer une animation – GDScript
- AnimatedSprite – stop() - arrêter une animation – GDScript
- AnimatedSprite – setFrame() - afficher une frame spécifique – GDScript
- utiliser match à la place de if – GDScript
- limiter la taille d’un Vector2 avec normalized() – GDScript
0:34 Les Structures de données
- type de donnée Array – GDScript
- type de donnée Dictionary (clé – valeur) – GDScript
6:04 Amélioration du code grâce aux data structures
- fonction _find_dir_name
- rechercher dans l’aide – Interface
- Dictionary – values() - récupérer les valeurs du dictionnaire – GDScript
- Array – find() - Rechercher une valeur dans un array – GDScript
- AnimatedSprite – has_animation() - Test si l’animation existe – GDScript
- Supprimer le warning The function returns a value, but this value is never used – GDScript
15:35 Animation d'attaque
- la fonction is_action_just_pressed() - éviter l’appuie d’une touche en continue – GDScript
22:26 Votre premier debug
- Ajouter un breakpoint – Interface
- Le debogueur – la valeur des variables – Interface
25:30 moving_direction != facing_direction
- Typer une variable par affectation := – GDScript
27:40 Votre premier signal
- Signal - Les signaux d’un nœud – Interface
- Signal – Connecter un signal – Interface
- AnimatedSprite – signal animation_finished() – GDScript
- AnimatedSprite – get_animation() - retourne l’animation en cours – GDScript
30:30 Read the fu**ing manual
- String – is_subsequence_of() - cherche une sous-chaîne dans une chaîne de caractères – GDScript
1:50 Les Enumérations
- type de donnée enum – GDScript
3:07 State Machine
- utiliser enum – GDScript
- design pattern StateMachine – GDScript
6:59 Les accesseurs
- setget – les setter et les getter – GDScript
9:12 Déclarer un signal
- Signal – déclarer un signal custom dans le code – GDScript
- Signal – emit_signal – émettre un signal custom – GDScript
- Signal – signal custom dans l’interface – Interface
14:13 _update_animation()
- Création des animations idle
18:40 Le problème des diagonales
0:14 HitBox d'attaque & rotation
- Area2d – Noeud
- Area2d – Ajouter une collision shape– Interface
- Vector2 – angle() - GDScript
- méthode set_rotation() - GDScript
- méthode set_rotation_degrees() - GDScript
- méthode rad2deg() et deg2rad() - GDScript
- AnimatedSprite – signal frame_changed – GDScript
- AnimatedSprite – get_frame() - retourne le numéro de la frame de l’animation en cours – GDScript
5:41 Déclenchement de l'effet d'attaque
- Area2d - get_overlapping_areas() – GDScript
- Area2d - get_overlapping_bodies() – GDScript
- Array – parcourir un array avec une boucle for – GDScript
- méthode has_method() - savoir la méthode est définie par l’objet – GDScript
- méthode destroy() - supprimer un objet et le libérer de la mémoire– GDScript
10:17 Pots destructibles
- créer une nouvelle scène - Interface
- StaticBody2d – Noeud
- récupérer un nœud enfant avec $ plutôt que get_node() - GDScript
- CollisionShape2D – méthode set_disabled() - désactive la collision shape – GDScript
16:58 Coffres
- Préfixer une méthode privée avec _ - GDScript
0:48 Taille de l'ecran
- Taille de la fenêtre (Paramètres du projet - Display - window) Width – Height – Interface
- Configuration de la fenêtre (Paramètres du projet - Display - window) Borderless – Fullscreen - Mode 2D – Aspect keep_width– Interface
2:26 Camera
- Camera2D – Noeud
- Camera2D – current définir la caméra active- Interface
- Camera2D – Drag Margin la caméra bouge moins– Interface
- Camera2D – Draw Drag Margin – Interface
- Camera2D – Smoothing – la caméra bouge plus gentillement – Interface
4:40 YSort
- YSort – Afficher le personnage dessus/dessous en fonction de sa position en Y - Noeud
6:25 Collectables: Pieces
- gestion d’un ombre
- AnimatedSprite – Modulate – modifier la couleur - ajouter de la transparence – Interface
- fonction _physics_process() indépendante de la vitesse de la machine – GDScript
- méthode get_position() - position d’un objet 2D – GDScript
- méthode move_toward() - déplacer vers – GDScript
- méthode distance_to() - déplacer vers – GDScript
- Particles2D – Noeud
- Particles2D – ParticlesMaterial – Interface
- Particles2D – Velocity – Amount - Initial vélocity – Direction – Gravity – Emission Shape -Color Ramp – One Shot – Emitting – Interface
- Particles2D – set_emitting() - Lancer les particules – GDScript
- AudioStreamPlayer2D – Noeud
- AudioStreamPlayer2D – Stream – Ajouter un son – Interface
- AudioStreamPlayer2D – Importer sans loop – Interface
- AudioStreamPlayer2D – play() - jouer le son – GDScript
- AnimatedSprite – set_visible() - Afficher / Cacher – GDScript
- fonction yield() - attente d’un signal – GDScript
- fonction queue_free() - supprimer le nœud et le libérer de la mémoire – GDScript
- Timer – Noeud
- Timer – Wait time - Autostart– Interface
- Timer – Signal timeout() – Interface
- AnimationPlayer – Faire varier une propriété des nœud dans la temps– Noeud
- AnimationPlayer – Piste de propriété – Interface
- AnimationPlayer – Changer l’interpolation – Interface
- AnimationPlayer – méthode play() - lancer l’animation – GDScript
- AnimationPlayer – méthode stop() - stopper l’animation – GDScript
- Stopper le flickering (Paramètres du projet - Display – Use Gpu Pixel Snap) – Interface
1:12 Preview du résultat
1:33 CanvasLayer
- TextureRect – Afficher une image dans une interface utilisateur – Noeud
- TextureRect – Ajout d’une texture – Interface
- CanvasLayer – Noeud
3:16 HUD
- Control – Noeud
- Control – Disposition sur l’écran – Positionner un control – Interface
- Control – Disposition sur l’écran – rectangle complet – Interface
- TextureRect – Noeud
- TextureRect – Ajout d’une texture – Interface
- TextureRect – Déplacer la texture – Interface
- Light2D – Noeud
- Light2D – Mode mask** – Interface
- Light2D – Ajout d’une texture** – Interface
- Light2D – Déplacer avec Transform - Position** – Interface
- Faire un calcul dans les propriétés** – Interface
- Light2D – Range – Régler les layers** – Interface
- Light2D – Les Mask** – Interface
- Gestion des masks – Interface
13:12 Label & Font
- Label – Noeud
- Label – Gestion des polices de caractères (font) – Interface
- Label – Antialiasing des fonts– Interface
- Label – Gestion du contours – outline size** – Interface
16:00 Quelques notions d’architecture
17:42 Autoload (Singleton)
- design pattern Singleton – GDScript
- création du script Singleton – GDScript
- charger le script au démarrage (Autoload) – GDScript
22:08 Events Bus
- design pattern Event Bus - Gérer les évènements d’une scène à l’autre – GDScript
- Signal – déclarer un signal custom dans un autoload – GDScript
- Signal – connecter un signal qui est dans l’autoload – GDScript
- Signal – méthode connect() - connecter un signal en GDScript – GDScript
- Convertir un int en String (cast) – GDScript
0:27 Simple Factory
- design pattern Simple Factory – GDScript
- fonction preload() - chargement d’une scène dans une ressource – GDScript
- méthode instance() - instancier une scène – GDScript
- objet owner – nœud racine de la scène – GDScript
- méthode add_child() - ajouter l’instance à un nœud – GDScript
13:28 Animation de Spawn
- fonction rand_range() tirer un numéro aléatoirement – GDScript
- Vector2 : fonction length() - longueur d’un vecteur– GDScript
- Vector2 : fonction clamped() limiter la longueur d’un vecteur– GDScript
- ctrl + shift + O – Ouvrir une scène rapidement – Interface
- alt + shift + O – Ouvrir un script rapidement – Interface
- Timer – One Shot – Interface
32:38 Aléatoire
- fonction randomize() initialiser l’aléatoire – GDScript
34:19 Un peu de debug
- class_name – définir un type d’objet – GDScript
36:16 Autocollect
0:50 Héritage (De class)
- class_name – l’héritage – GDScript
- extends – l’héritage – GDScript
- Création d’une class avec un script – GDScript
13:28 Héritage de scènes
- function override avec . – Surcharge de méthoodes, appel de la méthode du parent – GDScript
- Fusionner depuis la scène – récupérer les nœud (Copier / Coller) d’une autre scène – Interface
- Fichier – Nouvelle scène héritée… - Créer une nouvelle scène héritée d’une scène existante – Interface
- AnimatedSprite – Enregistrer une ressource SpriteFrames – Fichier .tres – Interface
- Enregistrer une ressource sous Godot – Fichier .tres – Interface
- Charger une ressource sous Godot – Fichier .tres – Interface
- Instancier une scène enfant – Interface
1:43 StateMachine a partir de nodes
- type de donnée Object – GDScript
- fonction get_node_or_null() - GDScript
- design pattern State – GDScript
18:58 La class State
- class abstraite - GDScript
20:07 enter_state() & exit_state()
21:43 update()
23:07 Refacto de Actor avec la nouvelle implementation
- Ajouter un nœud custom – Interface
- fonction get_child() - Récupérer un nœud enfant en fonction de sa position – GDScript
1:24 Behaviour Tree
- design pattern Behaviour Tree – GDScript
3:43 Area de détection
5:36 Code de détection du joueur
- Signal – body_entered – Détection d’un de collision – Interface
- Signal – body_exited – Détection d’un de collision – Interface
14:36 StateLabel
19:00 Déclenchement des Behaviour States
21:08 Chase
- Array – empty() - Teste si l’array est vide– GDScript
- global_position – position locale – position globale– GDScript
- Vector2 - direction_to() – cherche la direction vers une position – GDScript
- Vector2 - distance_to() – cherche la distance vers une position – GDScript
- move_and_collide() - GDScript
- Array – remove() - Enlever un élément de l’array – GDScript
36:08 export var
- export – exposer une variable dans l’interface – GDScript
37:19 Placeholder pour Wander
37:56 Attack
41:02 Flickering & facing_direction
45:36 Interruption de l'attaque
- Timer – start() – GDScript
- Timer – is_stopped() – GDScript
- Timer – is_paused() – GDScript
1:10 StateMachine imbriquée
- design pattern State – GDScript
11:47 WaitState
- export – exposer une variable dans l’interface – GDScript
18:40 GoToState
31:27 StateLabel & fonctions récursives
- is_class() - test si un objet est d’une certaine class – GDScript
1:00 Pathfinder.gd
- class AStar2d – Gdscript
- Vector2 – type PoolVector2Array – Array de Vector2 – GDScript
8:53 Création des points du A*
- Tilemap - get_used_cells() - Retourne la liste des points utilisés – GDScript
- Tilemap - get_cellv – Retourne l’id du tile utilisé – GDScript
- Tilemap - Tileset – tile_get_name() – Retourne le nom du tile utilisé – GDScript
- abs() - retourne la valeur absolue d’une valeur – Gdscript
- AStar2d – add_point() – Gdscript
22:07 Connexion des points adjacents
- AStar2d – has_point() – Gdscript
- continue – passer à la prochaine itération d’une boucle – Gdscript
30:25 find_path()
35:48 Dependancy injection & groupes
42:34 update_move_path()
44:30 Un peu de bugfix
53:18 Les obstacles
1:03:20 Diagonales
1:06:20 Trouver une destination valide