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.
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.
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.
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.
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:
Sie haben immer einen Root-Node, wie der „Spieler“ in unserem Beispiel.
Sie können auf Ihrem lokalen Laufwerk gespeichert und später geladen werden.
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.
In an empty scene, the Scene dock on the left shows several options to add a root node quickly. adds a Node2D node, adds a Node3D node, and adds a Control node. These presets are here for convenience; they are not mandatory. lets you select any node to be the root node. In an empty scene, is equivalent to pressing the 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 button or to create a root node.
The Create New Node dialog opens, showing the long list of available nodes.
Wählen Sie den Label-Node. Sie können seinen Namen eingeben, um die Liste zu filtern.
Click on the Label node to select it and click the button at the bottom of the window.
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".
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.
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.
Ausführen der Szene
Everything's ready to run the scene! Press the button in the top-right of the screen or press F6 (Cmd + R on macOS).
A popup invites you to save the scene, which is required to run it. Click the
button in the file browser to save it as label.tscn.
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.
Schließen Sie das Fenster oder drücken Sie F8 (Cmd + . unter macOS), um die laufende Szene zu beenden.
Die Hauptszene festlegen
To run our test scene, we used the button. Another button next to it, , allows you to set and run the project's main scene. You can also press F5 (Cmd + B on macOS) to do so.
Bemerkung
Running the project's main scene is distinct from running the current scene. If you encounter unexpected behavior, check to ensure you are running the correct scene.
Ein Popup-Fenster erscheint und lädt Sie ein, die Hauptszene auszuwählen.
Click the button, and in the file dialog that appears, double
click on label.tscn.
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 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.