Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Nodes und Szenen

In Überblick über Godots Schlüsselkonzepte haben wir gesehen, dass ein Godot-Spiel ein Baum von Szenen ist und dass jede Szene ein Baum von Nodes ist. In dieser Lektion erklären wir ein wenig mehr über sie. Sie werden auch Ihre erste Szene erstellen.

Nodes

Nodes sind die grundlegenden Bausteine Ihres Spiels. Sie sind wie die Zutaten in einem Rezept. Es gibt Dutzende von Arten, die ein Bild anzeigen, einen Sound abspielen, eine Kamera darstellen und vieles mehr.

../../_images/nodes_and_scenes_nodes.webp

Alle Nodes weisen die folgenden Merkmale auf:

  • Ein Name.

  • Bearbeitbare Propertys.

  • Sie erhalten Callbacks, um sich in jedem Frame zu aktualisieren.

  • Sie können um neue Propertys und Funktionen erweitert werden.

  • Sie können einem anderen Node als Child hinzugefügt werden.

The last characteristic is important. Together, nodes form a tree, which is a powerful feature to organize projects. Since different nodes have different functions, combining them produces more complex behavior. As we saw before, you can build a playable character that the camera follows using a CharacterBody2D node, a Sprite2D node, a Camera2D node, and a CollisionShape2D node.

../../_images/nodes_and_scenes_character_nodes.webp

Szenen

Wenn Sie Nodes in einem Baum organisieren, wie unseren Charakter, nennen wir dieses Konstrukt eine Szene. Nach dem Speichern funktionieren Szenen wie neue Node-Typen im Editor, wo Sie sie als Child eines bestehenden Nodes hinzufügen können. In diesem Fall erscheint die Instanz der Szene als ein einzelner Node, dessen innerer Zustand ausgeblendet ist.

Mit Szenen können Sie den Code Ihres Spiels strukturieren, wie Sie wollen. Sie können Nodes zusammenstellen, um benutzerdefinierte und komplexe Node-Typen zu erstellen, wie z.B. eine Spielcharakter, der läuft und springt, einen Lebensbalken, eine Truhe, mit der Sie interagieren können, und vieles mehr.

../../_images/nodes_and_scenes_3d_scene_example.webp

Der Godot-Editor ist im Wesentlichen ein Szeneneditor. Er verfügt über eine Vielzahl von Tools zur Bearbeitung von 2D- und 3D-Szenen sowie von Benutzeroberflächen. Ein Godot-Projekt kann so viele dieser Szenen enthalten, wie Sie benötigen. Die Engine benötigt nur eine als Hauptszene Ihrer Anwendung. Dies ist die Szene, die Godot zuerst lädt, wenn Sie oder ein Spieler das Spiel starten.

Zusätzlich zu ihrer Funktion als Nodes haben Szenen die folgenden Eigenschaften:

  1. Sie haben immer einen Root-Node, wie der „Spieler“ in unserem Beispiel.

  2. Sie können auf Ihrem lokalen Laufwerk gespeichert und später geladen werden.

  3. Es können so viele Instanzen einer Szene erstellt werden, wie Sie möchten. Sie könnten fünf oder zehn Charaktere in Ihrem Spiel haben, die aus Ihrer Charakter-Szene erstellt wurden.

Erstellen der ersten Szene

Lassen Sie uns unsere erste Szene mit einem einzelnen Node erstellen. Dazu müssen Sie zunächst ein neues Projekt erstellen. Nachdem Sie das Projekt geöffnet haben, sollten Sie einen leeren Editor sehen.

../../_images/nodes_and_scenes_01_empty_editor.webp

In an empty scene, the Scene dock on the left shows several options to add a root node quickly. 2D Scene adds a Node2D node, 3D Scene adds a Node3D node, and User Interface adds a Control node. These presets are here for convenience; they are not mandatory. Other Node lets you select any node to be the root node. In an empty scene, Other Node is equivalent to pressing the Add Child Node button at the top-left of the Scene dock, which usually adds a new node as a child of the currently selected node.

Wir werden ein einzelnes Label-Node zu unserer Szene hinzufügen. Seine Funktion ist es, Text auf dem Bildschirm zu zeichnen.

Press the Add Child Node button or Other Node to create a root node.

../../_images/nodes_and_scenes_02_scene_dock.webp

The Create New Node dialog opens, showing the long list of available nodes.

../../_images/nodes_and_scenes_03_create_node_window.webp

Wählen Sie den Label-Node. Sie können seinen Namen eingeben, um die Liste zu filtern.

../../_images/nodes_and_scenes_04_create_label_window.webp

Click on the Label node to select it and click the Create button at the bottom of the window.

../../_images/nodes_and_scenes_05_editor_with_label.webp

Es passiert viel, wenn Sie den ersten Node einer Szene hinzufügen. Die Szene wechselt in den 2D-Viewport, da Label ein 2D-Nodetyp ist. Das Label erscheint, ausgewählt, in der oberen linken Ecke des Viewports. Der Node erscheint im Szenendock auf der linken Seite, und die Propertys des Nodes erscheinen im Inspektor-Dock auf der rechten Seite.

Ändern der Propertys eines Nodes

The next step is to change the Label's Text property. Let's change it to "Hello World".

Head to the Inspector dock on the right of the viewport. Click inside the field below the Text property and type "Hello World".

../../_images/nodes_and_scenes_06_label_text.webp

Sie sehen, wie der Text im Viewport gezeichnet wird, während Sie tippen.

Siehe auch

Sie können jede im Inspektor aufgeführte Property bearbeiten, wie wir es mit dem Text getan haben. Eine vollständige Referenz des Inspektor-Docks finden Sie unter Inspector Dock.

Sie können Ihr Label-Node im Viewport verschieben, indem Sie das Verschiebungs-Tool in der Toolbar auswählen.

../../_images/nodes_and_scenes_07_move_tool.webp

Während das Label ausgewählt ist, ziehen Sie es per Drag&Drop an eine beliebige Stelle im Viewport, um es in die Mitte der durch das Rechteck begrenzten Ansicht zu verschieben.

../../_images/nodes_and_scenes_08_hello_world_text.webp

Ausführen der Szene

Alles ist bereit, die Szene abzuspielen! Drücken Sie den Aktuelle Szene abspielen-Button oben rechts auf dem Bildschirm oder drücken Sie F6 (Cmd + R unter macOS).

../../_images/nodes_and_scenes_09_play_scene_button.webp

A popup invites you to save the scene, which is required to run it. Click the Save button in the file browser to save it as label.tscn.

../../_images/nodes_and_scenes_10_save_scene_as.webp

Bemerkung

The Save Scene As dialog, like other file dialogs in the editor, only allows you to save files inside the project. The res:// path at the top of the window represents the project's root directory and stands for "resource path". For more information about file paths in Godot, see Dateisystem.

Die Anwendung sollte sich in einem neuen Fenster öffnen und den Text "Hello World" anzeigen.

../../_images/nodes_and_scenes_11_final_result.webp

Schließen Sie das Fenster oder drücken Sie F8 (Cmd + . unter macOS), um die laufende Szene zu beenden.

Siehe auch

See Game embedding for more information about the Game window that appears when running the project.

Die Hauptszene festlegen

To run our test scene, we used the Run Current Scene button. Another button next to it, Run Project, allows you to set and run the project's main scene. You can also press F5 (Cmd + B on macOS) to do so.

../../_images/nodes_and_scenes_12_play_button.webp

Bemerkung

Das Ausführen der Hauptszene eines Projekts ist etwas anderes, als die aktuelle Szene auszuführen. Falls Sie auf unerwartetes Verhalten stoßen, überprüfen Sie, ob Sie die korrekte Szene ausführen.

Ein Popup-Fenster erscheint und lädt Sie ein, die Hauptszene auszuwählen.

../../_images/nodes_and_scenes_13_main_scene_popup.webp

Click the Select button, and in the file dialog that appears, double click on label.tscn.

../../_images/nodes_and_scenes_14_select_main_scene.webp

Die Demo sollte wieder laufen. In Zukunft wird Godot jedes Mal, wenn Sie das Projekt ausführen, diese Szene als Startpunkt verwenden.

Bemerkung

The editor saves the main scene's path in a project.godot file in your project's directory. While you can edit this text file directly to change project settings, you can also use the Project > Project Settings window to do so. For more information, see Projekteinstellungen.

Im nächsten Teil werden wir ein weiteres Schlüsselkonzept in Spielen und in Godot besprechen: das Erstellen von Instanzen einer Szene.