Nœuds et scènes

Dans Aperçu des concepts clés de Godot, nous avons vu qu'un jeu Godot est un arbre de scènes et que chaque scène est un arbre de nœuds. Dans cette leçon, nous en expliquons un peu plus à leur sujet. Vous allez également créer votre première scène.

Nœuds

Les nœuds sont les éléments fondamentaux de votre jeu. Ils sont comme les ingrédients d'une recette. Il en existe des dizaines de types qui peuvent afficher une image, jouer un son, représenter une caméra, et bien plus encore.

../../_images/nodes_and_scenes_nodes.png

Tous les nœuds ont les attributs suivants :

  • Un nom.

  • Propriétés modifiables.

  • Ils reçoivent des callbacks pour mettre à jour chaque image.

  • Vous pouvez les étendre avec de nouvelles propriétés et fonctions.

  • Vous pouvez les ajouter à un autre nœud en tant qu’enfant.

Le dernier attribut est essentiel. Ensemble, les nœuds forment un arbre, qui est une fonctionnalité puissante pour organiser les projets. Les différents nœuds ayant des fonctions différentes, leur combinaison permet d'obtenir un comportement plus complexe. Comme nous l'avons vu précédemment, vous pouvez construire un personnage jouable que la caméra suit en utilisant un nœud corps cinématique nommé "Character", un nœud sprite, un nœud caméra et un nœud forme de collision.

../../_images/nodes_and_scenes_character_nodes.png

Les scènes

Lorsque vous organisez des nœuds dans un arbre, comme notre personnage, nous appelons cette construction une scène. Une fois enregistrées, les scènes fonctionnent comme de nouveaux types de nœuds dans l'éditeur, où vous pouvez les ajouter comme enfant d'un nœud existant. Dans ce cas, l'instance de la scène apparaît comme un nœud unique dont les éléments internes sont cachés.

Les scènes vous permettent de structurer le code de votre jeu comme vous le souhaitez. Vous pouvez composer des nœuds pour créer des types de nœuds personnalisés et complexes, comme un personnage de jeu qui court et saute, une barre de vie, un coffre avec lequel vous pouvez interagir, et plus encore.

../../_images/nodes_and_scenes_3d_scene_example.png

L'éditeur Godot est essentiellement un éditeur de scènes. Il dispose de nombreux outils pour éditer des scènes 2D et 3D, ainsi que des interfaces utilisateur. Un projet Godot peut contenir autant de ces scènes que vous le souhaitez. Le moteur n'en requiert qu'une seule, la scène principale de votre application. Il s'agit de la scène que Godot charge en premier lorsque vous ou un joueur lance le jeu.

En plus d'agir comme des nœuds, les scènes possèdent les attributs suivants :

  1. Ils ont toujours un nœud racine, comme le "Character" dans notre exemple.

  2. Vous pouvez les enregistrer sur votre disque dur et les charger plus tard.

  3. Vous pouvez créer autant d’instances d’une scène que vous le souhaitez. Vous pouvez avoir cinq ou dix personnages dans votre jeu, créés à partir de votre scène Character.

Créer votre première scène

Créons notre première scène avec un seul nœud. Pour ce faire, vous devez d'abord créer un nouveau projet. Après avoir ouvert le projet, vous devriez voir un éditeur vide.

../../_images/nodes_and_scenes_01_empty_editor.png

Dans une scène vide, le panneau Scène offre plusieurs options pour rapidement ajouter un nœud racine à une scène. "Scène 2D" ajoute un nœud Node2D, "Scène 3D" ajoute un nœud Spatial, "Interface utilisateur" ajoute un nœud Control et "Autre noeud" vous laisse choisir n'importe quel nœud. Cela équivaut à appuyer sur le bouton "Ajouter un nœud enfant". Ces préréglages sont là par commodité, ils ne sont pas obligatoires.

Nous allons ajouter un seul nœud Label à notre scène. Sa fonction est de dessiner du texte à l'écran.

Appuyez sur le bouton "Ajouter un nœud enfant" en haut à gauche du dock Scène pour créer un nœud. Ce bouton ajoute le nœud choisi comme enfant du nœud actuellement sélectionné ou, dans une scène vide, comme racine.

../../_images/nodes_and_scenes_02_scene_dock.png

La boîte de dialogue Créer un Nœud s'ouvre et affiche la longue liste des nœuds disponibles.

../../_images/nodes_and_scenes_03_create_node_window.png

Sélectionnez le nœud Label. Vous pouvez taper son nom pour filtrer la liste.

../../_images/nodes_and_scenes_04_create_label_window.png

Cliquez sur le nœud Label pour le sélectionner et cliquez sur le bouton Créer en bas de la fenêtre.

../../_images/nodes_and_scenes_05_editor_with_label.png

Il se passe beaucoup de choses lorsque vous ajoutez le premier nœud d’une scène. La scène passe à l'espace de travail 2D car le Label est un type de nœud 2D. Le Label apparaît, sélectionnée, dans le coin supérieur gauche de la fenêtre d'affichage. Le nœud apparaît dans le dock scène, à gauche, et les propriétés du nœud apparaissent dans le dock de l'inspecteur, à droite.

Modification des propriétés d'un nœud

L'étape suivante consiste à modifier la propriété "Text" du Label. Changeons-la en "Hello World".

Allez dans le dock de l'inspecteur à droite de la fenêtre d'affichage. Cliquez dans le champ situé sous la propriété Text et tapez "Hello World".

../../_images/nodes_and_scenes_06_label_text.png

Vous verrez le texte se dessiner dans la fenêtre d'affichage au fur et à mesure que vous tapez.

Vous pouvez déplacer votre nœud Label dans la fenêtre d'affichage en sélectionnant l'outil de déplacement dans la barre d'outils.

../../_images/nodes_and_scenes_07_move_tool.png

Lorsque le Label est sélectionnée, cliquez et faites glisser n'importe où dans la fenêtre d'affichage pour la déplacer au centre de la vue délimitée par le rectangle.

../../_images/nodes_and_scenes_08_hello_world_text.png

Exécution de la scène

Tout est prêt pour lancer la scène ! Appuyez sur le bouton Lancer la Scène en haut à droite de l'écran ou appuyez sur F6.

../../_images/nodes_and_scenes_09_play_scene_button.png

Une popup vous invite à sauvegarder la scène, ce qui est nécessaire pour l'exécuter.

../../_images/nodes_and_scenes_10_save_scene_popup.png

Cliquez sur le bouton Oui, et dans le navigateur de fichiers qui apparaît, appuyez sur le bouton Enregistrer pour le sauvegarder sous le nom de "Label.tscn".

../../_images/nodes_and_scenes_11_save_scene_as.png

Note

La boîte de dialogue Enregistrer la scène sous, comme les autres boîtes de dialogue de fichiers de l'éditeur, ne permet d'enregistrer des fichiers qu'à l'intérieur du projet. Le chemin res:// en haut de la fenêtre représente le répertoire racine du projet et signifie "resource path". Pour plus d'informations sur les chemins de fichiers dans Godot, voir Le système de fichiers.

L'application doit s'ouvrir dans une nouvelle fenêtre et afficher le texte "Hello World".

../../_images/nodes_and_scenes_12_final_result.png

Fermez la fenêtre ou appuyez sur F8 pour quitter la scène en cours d’exécution.

Note

Si jamais cela n'a pas fonctionné et que vous avez au moins un écran compatible hiDPI, allez dans Projet → Paramètres du projet → Display → Window puis activer Allow Hidpi dans la catégorie Dpi.

Mise en place de la scène principale

Pour exécuter notre scène de test, nous avons utilisé le bouton Jouer la scène. Un autre bouton à côté vous permet de définir et de lancer la scène principale du projet. Vous pouvez appuyer sur F5 pour le faire.

../../_images/nodes_and_scenes_13_play_button.png

Une fenêtre popup apparaît et vous invite à sélectionner la scène principale.

../../_images/nodes_and_scenes_14_main_scene_popup.png

Cliquez sur le bouton Sélectionner et, dans la boîte de dialogue qui s'affiche, double-cliquez sur Label.tscn.

../../_images/nodes_and_scenes_15_select_main_scene.png

La démo devrait fonctionner à nouveau. À l'avenir, chaque fois que vous exécuterez le projet, Godot utilisera cette scène comme point de départ.

Note

L'éditeur enregistre le chemin de la scène principale dans un fichier project.godot dans le répertoire de votre projet. Bien que vous puissiez modifier ce fichier texte directement pour changer les paramètres du projet, vous pouvez également utiliser la fenêtre "Projet -> Paramètres du projet..." pour le faire.

Dans la prochaine partie, nous aborderons un autre concept clé dans les jeux et dans Godot : la création d'instances d'une scène.