Up to date

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

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

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

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

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

Das letzte Merkmal ist wichtig. Zusammen bilden die Nodes einen Baum, was ein leistungsstarkes Konzept zur Organisation von Projekten darstellt. Da verschiedene Nodes unterschiedliche Funktionen haben, kann durch ihre Kombination komplexeres Verhalten erreicht werden. Wie wir bereits gesehen haben, können Sie einen spielbaren Charakter, dem die Kamera folgt, mit einem CharacterBody2D-Node, einem Sprite2D-Node, einem Camera2D-Node und einem CollisionShape2D-Node erstellen.

../../_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.png

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 „Charakter“ 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 einer leeren Szene zeigt das Szenendock auf der linken Seite mehrere Optionen zum schnellen Hinzufügen eines Root-Nodes an. „2D-Szene“ fügt ein Node2D-Node hinzu, „3D-Szene“ fügt ein Node3D-Node hinzu und „Benutzeroberfläche“ fügt ein Control-Node hinzu. Diese Vorgaben dienen der Bequemlichkeit; sie sind nicht verpflichtend. Mit „Anderer Node“ können Sie einen beliebigen Node als Root-Node auswählen. In einer leeren Szene ist „Anderer Node“ gleichbedeutend mit dem Drücken der Buttons „Child-Node hinzufügen“ oben links im Szenendock, wodurch normalerweise ein neues Node als Child des aktuell ausgewählten Nodes hinzugefügt wird.

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

Drücken Sie „Child-Node hinzufügen“ oder „Anderer Node“ um einen Root-Node zu erstellen.

../../_images/nodes_and_scenes_02_scene_dock.webp

Das Dialogfeld „Node erstellen“ wird geöffnet und zeigt die lange Liste der verfügbaren Nodes an.

../../_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

Klicken Sie auf den Label-Node, um ihn auszuwählen, und klicken Sie auf den Erstellen-Button am unteren Rand des Fensters.

../../_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 Eigenschaften des Nodes erscheinen im Inspektor-Dock auf der rechten Seite.

Ändern der Eigenschaften eines Nodes

Mit dem nächsten Schritt wird die "Text"-Eigenschaft des Labels geändert. Ändern wir es zu "Hello World".

Gehen Sie zum Inspektor-Dock auf der rechten Seite des Viewports. Klicken Sie in das Feld unter der Eigenschaft Text und geben Sie "Hello World" ein.

../../_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 Der Inspektor.

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 "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

Ein Popup-Fenster fordert Sie auf, die Szene zu speichern; das ist zum Ausführen der Szene erforderlich. Klicken Sie im Dateibrowser auf den Speichern-Button, um die Szene als label.tscn zu speichern.

../../_images/nodes_and_scenes_10_save_scene_as.webp

Bemerkung

Der Dialog "Szene speichern als" erlaubt, wie andere Dateidialoge im Editor, nur das Speichern von Dateien innerhalb des Projekts. Der res:// Pfad am oberen Rand des Fensters stellt das Stammverzeichnis des Projekts dar und steht für "Ressourcen-Pfad". Für weitere Informationen über Dateipfade in Godot siehe 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.

Die Hauptszene festlegen

Um unsere Testszene auszuführen, haben wir den "Szene abspielen"-Button verwendet. Ein weiterer Button daneben ermöglicht es Ihnen, die Hauptszene des Projekts einzustellen und auszuführen. Dazu können Sie F5 (Cmd + B in macOS) drücken.

../../_images/nodes_and_scenes_12_play_button.webp

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

../../_images/nodes_and_scenes_13_main_scene_popup.webp

Klicken Sie auf den Auswählen-Button, und doppelklicken Sie im daraufhin angezeigten Dateidialog auf 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

Der Editor speichert den Pfad der Hauptszene in einer project.godot-Datei im Verzeichnis Ihres Projekts. Sie können diese Textdatei direkt bearbeiten, um die Projekteinstellungen zu ändern, Sie können aber auch das Fenster "Projekt -> Projekteinstellungen" dazu verwenden. Für weitere Informationen siehe Projekteinstellungen.

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