6.1.4. Einstellungen

Godot Engine bietet das Spiel eine Reihe von Einstellungsmöglichkeiten, die es den Spielern erlauben, ihre Spielerfahrung anzupassen. Eines der wichtigsten Elemente jeder Spielerfahrung ist die Art und Weise, wie das Spiel auf dem Bildschirm dargestellt wird. In StarRoamers werden verschiedene Anpassungsoptionen zur Verfügung gestellt, wie zum Beispiel der Vollbildmodus, die Synchronisation mit der vertikalen Bildwiederholrate (V-Sync) und die Anzeige der FPS (Frames per Second). Die Implementierung erfolgt mithilfe von Godots Nodes und Signale, um eine benutzerfreundliche Benutzeroberfläche zu erstellen.

6.1.4.1. Modes

Zum Beispiel bietet der fullscreen_dropdown OptionButton dem Spieler die Möglichkeit, zwischen Vollbild und Fenstermodus zu wechseln. Der Zustand des OptionButtons wird durch die Zeile fullscreen_dropdown.select(config.save_data["window_mode"]) aktualisiert, die den ausgewählten Index aus den zuvor gespeicherten Einstellungen lädt. V-Sync, ein wichtiger Aspekt bei der Vermeidung von Screen Tearing, kann durch das Markieren der V-Sync-Checkbox aktiviert oder deaktiviert werden. Dies geschieht durch die Methode _on_v_sync_check_pressed, die den aktuellen Status von V-Sync umkehrt (config.save_data["vsync_on"] = !config.save_data["vsync_on"]).

6.1.4.2. Initialisierung

In diesem Code werden die GUI-Elemente, die für die Einstellungen im Spiel “StarRoamers” verwendet werden, initialisiert. Mit dem @onready-Schlüsselwort stellt der Code sicher, dass die Variablen erst initialisiert werden, wenn alle Nodes bereit sind. Die $-Syntax ermöglicht es, auf bestimmte Elemente im Scene-Tree zuzugreifen. fullscreen_dropdown ist eine Referenz auf eine OptionButton-Komponente, die dem Spieler erlaubt, zwischen Vollbild- und Fenstermodus zu wählen. vsync_button ist eine Checkbox, mit der V-Sync ein- oder ausgeschaltet werden kann. display_fps_button ist ebenfalls eine Checkbox, die steuert, ob die Framerate (FPS) auf dem Bildschirm angezeigt wird. Schließlich wird die config Variable als eine Instanz eines zuvor erstellten Skripts initialisiert, welches zur Verwaltung von Konfigurationsdaten verwendet wird.

onready var fullscreen_dropdown = $VBoxContainer/WindowMode/OptionButton
onready var vsync_button = $VBoxContainer/Vsync/VSyncCheck
onready var display_fps_button = $VBoxContainer/DisplayFPS/DisplayFPSCheck
var config = preload("res://Scripts/config.gd").new()

game settings

6.1.4.3. Laden und Anwenden der Einstellungen

In diesem Abschnitt gibt es zwei Funktionen: load_options und render_changes. Die load_options-Funktion ruft die load_data-Methode des config-Objekts auf, die die gespeicherten Einstellungen des Spielers lädt. Die render_changes-Funktion aktualisiert die GUI-Elemente mit den geladenen Einstellungen. Die OptionButton-Komponente wird mit der ausgewählten Option aus den geladenen Daten aktualisiert, während die Checkboxen für V-Sync und die FPS-Anzeige entsprechend aktiviert oder deaktiviert werden.

func load_options():
	config.load_data()


func render_changes():
	fullscreen_dropdown.select(config.save_data["window_mode"])
	vsync_button.set_pressed_no_signal(config.save_data["vsync_on"])
	display_fps_button.set_pressed_no_signal(config.save_data["display_fps"])