Hauptmenü und Szenenwechsel

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.
  • TextureButton Nodes 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.

  1. Gehe im Menü auf Scene -> New Scene (Strg + N).
  2. Wähle einen Control Node als Wurzel (Root) aus.
  3. Benenne den Root-Node im Scene Dock um, z.B. in MainMenu.
  4. Speichere die Scene: Scene -> Save Scene (Strg + S). Nenne sie main_menu.tscn und speichere sie am besten im Projekt-Root oder in einem neuen Ordner scenes/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ü.

  1. Hintergrundbild einfügen (TextureRect):
  2. TextureButton für „Spiel starten“ hinzufügen:
  3. TextureButton für „Verlassen“ hinzufügen:
  4. 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.

  1. Skript an den MainMenu Node anhängen:
  2. Signale der Buttons im Editor verbinden: Um auf das Klicken der Buttons zu reagieren, verbinden wir ihre pressed()-Signale mit Funktionen in unserem main_menu.gd Skript.
  3. Logik im main_menu.gd Skript implementieren: Dein main_menu.gd Skript sollte nun die folgenden Funktionen und eine @onready-Referenz für die Buttons enthalten:

@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 Pfad res:// bezieht sich immer auf das Stammverzeichnis deines Projekts. scene ist 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.

  1. Gehe im Menü auf Project -> Project Settings….
  2. Wähle im linken Menü den Abschnitt „Application“ und dort den Unterabschnitt „Run“.
  3. Suche die Eigenschaft „Main Scene“. Klicke auf das Ordner-Icon rechts daneben.
  4. Navigiere zu deiner Datei main_menu.tscn und wähle sie aus. Klicke „Open“.
  5. 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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden.