Um ein „vollständiges“ Spielgefühl zu bekommen und die Struktur unseres Projekts zu organisieren, ist es entscheidend zu lernen, wie man zwischen verschiedenen Szenen wechselt. Der erste Schritt dazu ist die Erstellung eines Hauptmenüs. Ein Hauptmenü dient als erster Kontaktpunkt für die Spieler:innen mit unserem Spiel und führt sie von dort aus in die eigentliche Spielwelt.
In diesem Artikel werden wir:
- Eine neue, eigenständige Scene für unser Hauptmenü erstellen.
- Ein Hintergrundbild für das Menü einfügen.
TextureButtonNodes für die Aktionen „Spiel starten“ und „Verlassen“ hinzufügen.- Ein Script schreiben, das den Szenenwechsel zur Spielwelt sowie das Beenden der Anwendung handhabt.
- Festlegen, dass unser Spiel mit diesem Hauptmenü startet.
Schritt 1: Eine neue Scene für das Hauptmenü erstellen (main_menu.tscn)
Ein Hauptmenü besteht hauptsächlich aus Benutzeroberflächen-Elementen. Daher wählen wir einen Control Node als Wurzel (Root), da dieser die Basisklasse für alle UI-Nodes in Godot ist und sich gut als Root für UI-Szenen eignet.
- Gehe im Menü auf Scene -> New Scene (Strg + N).
- Wähle einen
ControlNode als Wurzel (Root) aus. - Benenne den Root-Node im Scene Dock um, z.B. in
MainMenu. - Speichere die Scene: Scene -> Save Scene (Strg + S). Nenne sie
main_menu.tscnund speichere sie am besten im Projekt-Root oder in einem neuen Ordnerscenes/ui.
Schritt 2: Hintergrundbild und Texture-Buttons hinzufügen
Da unser Hauptmenü ein Hintergrundbild haben soll, nutzen wir einen TextureRect für den Hintergrund und TextureButton Nodes für die klickbaren Elemente. Das sorgt für ein ansprechenderes, grafisches Menü.
- Hintergrundbild einfügen (
TextureRect): TextureButtonfür „Spiel starten“ hinzufügen:TextureButtonfür „Verlassen“ hinzufügen:- Speichere die Szene
main_menu.tscn(Strg + S).
Wenn du jetzt F5 drückst, siehst du das Hintergrundbild und deine grafischen Buttons. Sie funktionieren aber noch nicht.
Schritt 3: Skript für Button-Logik hinzufügen und Signale verbinden
Jetzt brauchen wir ein Skript, das auf die Klicks der neuen Buttons reagiert und den Szenenwechsel bzw. das Beenden der Anwendung durchführt. Wir hängen dieses Skript am Root-Node MainMenu an, um die gesamte Menülogik zentral zu verwalten.
- Skript an den MainMenu Node anhängen:
- Signale der Buttons im Editor verbinden: Um auf das Klicken der Buttons zu reagieren, verbinden wir ihre
pressed()-Signale mit Funktionen in unseremmain_menu.gdSkript. - Logik im
main_menu.gdSkript implementieren: Deinmain_menu.gdSkript sollte nun die folgenden Funktionen und eine@onready-Referenz für die Buttons enthalten:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
class_name MainMenu extends Control # Referenzen auf die Buttons @onready var start_game_button = $StartGameButton @onready var exit_button = $ExitButton # Funktion, die aufgerufen wird, wenn der Start-Button geklickt wird func _on_StartGameButton_pressed(): # Wechsle zur Hauptspielszene (world.tscn) # Stelle sicher, dass der Pfad zu unserer world.tscn korrekt ist! get_tree().change_scene_to_file("res://scenes/world.tscn") # Funktion, die aufgerufen wird, wenn der Verlassen-Button geklickt wird func _on_ExitButton_pressed(): # Beendet die Anwendung get_tree().quit() |
@onready var ... = $NodeName: Diese Zeilen ermöglichen es uns, bequem auf die Child-Nodes (unsere Buttons) des MainMenu Nodes zuzugreifen.
get_tree().change_scene_to_file("res://scene/world.tscn"): Dies ist die Godot-Methode, um die aktuell laufende Scene zu wechseln. Der Pfadres://bezieht sich immer auf das Stammverzeichnis deines Projekts.sceneist der Unterordner, in der du die World-Szene erstellt hast. Solltest du es anders organisiert haben, musst du den Pfad entsprechend anpassen.get_tree().quit(): Diese Methode beendet die Anwendung.
Speichere das Skript main_menu.gd (Strg + S).
Schritt 4: Hauptmenü als Startszene festlegen
Standardmäßig startet Godot immer die Scene, die in den Projekt-Einstellungen festgelegt ist (im Moment wahrscheinlich noch world.tscn). Wir müssen Godot sagen, dass es mit dem Hauptmenü starten soll.
- Gehe im Menü auf Project -> Project Settings….
- Wähle im linken Menü den Abschnitt „Application“ und dort den Unterabschnitt „Run“.
- Suche die Eigenschaft „Main Scene“. Klicke auf das Ordner-Icon rechts daneben.
- Navigiere zu deiner Datei
main_menu.tscnund wähle sie aus. Klicke „Open“. - Schließe das Fenster Project Settings.
Schritt 5: Ausführen
Führe das Projekt aus (F5).
Ergebnis:
Das Spiel startet nun mit deinem grafischen Hauptmenü! Wenn du auf den Button „Spiel starten“ klickst, wechselt Godot zur Scene world.tscn, und du siehst dein Spiel mit dem Player und den Münzen. Der Button „Verlassen“ beendet die Anwendung.
Dein nächster Schritt
Fantastisch! Du hast gelernt, wie man ein Hauptmenü in Godot erstellt, grafische Buttons verwendet und den Szenenwechsel implementiert. Dies ist eine absolut grundlegende Fähigkeit für die Entwicklung jedes vollständigen Spiels. Wir haben nun eine klare Startseite für unser Spiel geschaffen und können nahtlos in die Spielwelt übergehen.
Als Nächstes werden wir uns dem Thema „Mehrere Levels“ widmen und lernen, wie man zwischen verschiedenen Levels wechselt, um ein noch umfassenderes Spielerlebnis zu schaffen.
