Up to date

This page is up to date for Godot 4.3. If you still find outdated information, please open an issue.

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.webp

When you add the Area2D node, Godot will display the following warning icon next to it in the scene tree:

../../_images/no_shape_warning.webp

This warning tells us that the Area2D node requires a shape to detect collisions or overlaps. We can ignore the warning temporarily because we will first set up the player's visuals (using an animated sprite). Once the visuals are ready, we will add a collision shape as a child node. This will allow us to accurately size and position the shape based on the sprite’s appearance.

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 "Regroupe le nœud sélectionné avec ses enfants. Cela entraîne la sélection du parent lorsque l'on clique sur un nœud enfant en vue 2D et 3D."

../../_images/lock_children.webp

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 le PascalCase, les variables et les fonctions utilisent le snake_case, et les constantes utilisent le 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

Click on the Player node and add (Ctrl + A on Windows/Linux or Cmd + A on macOS) a child node AnimatedSprite2D. The AnimatedSprite2D will handle the appearance and animations for our player. Notice that there is a warning symbol next to the node. An AnimatedSprite2D requires a SpriteFrames resource, which is a list of the animations it can display. To create one, find the Sprite Frames property under the Animation tab in the Inspector and click "[empty]" -> "New SpriteFrames":

../../_images/new_spriteframes.webp

Click on the SpriteFrames you just created to open the "SpriteFrames" panel:

../../_images/spriteframes_panel.webp

On the left is a list of animations. Click the "default" one and rename it to "walk". Then click the "Add Animation" button to create a second animation named "up". Find the player images in the "FileSystem" tab - they're in the art folder you unzipped earlier. Drag the two images for each animation, named playerGrey_walk[1/2] and playerGrey_walk[2/2], into the "Animation Frames" side of the panel for the corresponding animation:

../../_images/spriteframes_panel2.webp

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 AnimatedSprite2D 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.webp

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 "[empty]" -> "Nouveau CapsuleShape2D". En utilisant les deux poignées de redimensionnement, redimensionnez la forme pour couvrir le sprite :

../../_images/player_coll_shape.webp

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

../../_images/player_scene_nodes.webp

Once this is done, the warning on the Area2D node will disappear, as it now has a shape assigned and can interact with other objects.

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.