Création de la scène joueur

Avec les paramètres du projet en place, nous pouvons commencer à travailler sur le personnage contrôlé par le joueur.

La première scène définira l'objet Player. L'un des avantages de la création d'une scène Player séparée est que nous pouvons la tester séparément, avant même d'avoir créé d'autres parties du jeu.

Structure des nœuds

Pour commencer, nous devons choisir un nœud racine pour l'objet joueur. En règle générale, le nœud racine d'une scène doit refléter la fonctionnalité souhaitée de l'objet - ce que l'objet est. Cliquez sur le bouton "Other Node" et ajoutez un nœud Area2D à la scène.

../../_images/add_node.png

Godot affichera une icône d'avertissement près du nœud dans l'arbre de scène. Vous pouvez l'ignorer pour le moment. Nous y reviendrons plus tard.

Avec Area2D, nous pouvons détecter les objets qui chevauchent ou rentrent en collision le joueur. Changez le nom du nœud en Player en double-cliquant sur son nom. Maintenant que nous avons défini le nœud racine de la scène, nous pouvons ajouter des nœuds supplémentaires pour lui donner plus de fonctionnalités.

Avant d'ajouter des enfants au nœud Player, nous voulons nous assurer de ne pas les déplacer ou les redimensionner accidentellement en cliquant dessus. Sélectionnez le nœud et cliquez sur l'icône à droite du cadenas ; son info-bulle indique "Rendre la sélection des enfants de l'objet impossible."

../../_images/lock_children.png

Sauvegardez la scène. Cliquez sur Scène -> Enregistrer la scène, ou appuyez sur Ctrl + S sous Windows/Linux ou Cmd + S sous macOS.

Note

Pour ce projet, nous suivrons les conventions de nommage de Godot.

  • GDScript : Les classes (nœuds) utilisent PascalCase, les variables et les fonctions utilisent snake_case, et les constantes utilisent ALL_CAPS (Voir Guide de style GDScript).

  • C# : Les classes, les variables d'exportation et les méthodes utilisent PascalCase, les attributs privés utilisent _camelCase, les variables locales et les paramètres utilisent camelCase (Voir Guide de style C#). Attention à taper les noms des méthodes précisément lorsque vous connectez des signaux.

Animation du sprite

Cliquez sur le nœud Player et ajoutez un nœud AnimatedSprite comme nœud enfant. AnimatedSprite s'occupera de l'apparence et des animations pour notre joueur. Notez qu'il y a un symbole d'avertissement à côté du nœud. Un AnimatedSprite nécessite une ressource SpriteFrames, qui contient la liste des animations qu'il peut afficher. Pour en créer une, trouvez la propriété Frames dans l'Inspecteur et cliquez sur "[vide]" -> "Nouveau SpriteFrames". Cliquez à nouveau pour ouvrir le panneau "SpriteFrames" :

../../_images/spriteframes_panel.png

A gauche, vous trouverez une liste d'animations. Cliquez sur "default" et renommez-la en "walk". Cliquez ensuite sur le bouton "New Animation" pour créer une deuxième animation nommée "up". Trouvez les images du joueur dans l'onglet "Système de fichiers" - elles se trouvent dans le dossier art que vous avez décompressé plus tôt. Faites glisser les deux images pour chaque animation, nommées playerGrey_up[1/2] et playerGrey_walk[1/2], dans le côté "Animation Frames" du panneau pour l'animation correspondante :

../../_images/spriteframes_panel2.png

Les images du joueur sont un peu trop grandes pour la fenêtre de jeu, nous devons donc les réduire. Cliquez sur le nœud AnimatedSprite et réglez la propriété Scale sur (0.5, 0.5). Vous pouvez la trouver dans l'Inspecteur sous la catégorie Node2D.

../../_images/player_scale.png

Enfin, ajoutez un CollisionShape2D en tant qu'enfant de Player. Ceci déterminera la "hitbox" du joueur, soit les limites de sa zone de collision. Pour ce personnage, un nœud CapsuleShape2D donne le meilleur ajustement, donc à côté de "Shape" dans l'Inspecteur, cliquez sur "[vide]" -> "Nouveau CapsuleShape2D". En utilisant les poignées, redimensionnez la forme pour couvrir le sprite :

../../_images/player_coll_shape.png

Lorsque vous avez terminé, votre scène Player devrait ressembler à ceci :

../../_images/player_scene_nodes.png

Veillez à sauvegarder à nouveau la scène après ces changements.

Dans la prochaine partie, nous ajouterons un script sur le nœud du joueur pour le déplacer et l'animer. Ensuite, nous mettrons en place une détection de collisions pour savoir quand le joueur a été touché par quelque chose.