Um die Ausführung der Anwendung von Seitens des Skriptes zu beenden, sind folgende Zeilen als Beispiel zu sehen.
if Input.is_key_pressed(KEY_Q): self.get_tree().quit()
Stirbt der Spieler, können wir mit den folgenden Zeilen die Szene wieder in ihren Ursprung zurücksetzen.
# Zurücksetzen einer Szene get_tree().reload_current_scene()
Bevor man eine Anwendung pausiert, muss man sich Gedanken machen, wie man selbige wieder aktiviert. Es müssen Nodes von der Pausenfunktion ausgenommen werden, ansonsten gibt es kein Zurück.
Ob ein Node bei einer Pause „Einfriert“ oder weiter abgearbeitet wird, hängt von einem Parameter ab, dessen mögliche Werte anschließend aufgelistet werden.
Inspektor ⇒ Pause ⇒ Mode
Inherit: | Erbt verhalten des Eltern-Nodes |
---|---|
Stop: | Stoppt unabhängig vom Status des Eltern-Nodes |
Process: | Ausführen unabhängig vom Status des Eltern-Nodes |
Folgende Beispielszene soll die Anwendung von der Pause verdeutlichen:
Hierbei fügen wir dem Button pause_start zunächst ein Skript hinzu und wechseln wieder in den 2D-Editor und selektieren dort den Button.
Über:
Node ⇒ Signale ⇒ BaseButton ⇒ pressed()
erstellen wir eine Funktion und im Dialogfenster weisen wir diese dem Button pause_start zu. Danach erweitern wir die Funktion um diese Zeilen:
func _on_pause_start_pressed(): self.get_tree().paused = true $"../Panel".show() # Panel sichtbar
Das Panel soll nicht in den Pause-Modus wechseln, deswegen ändern wir hier den Mode
Inspektor ⇒ Pause ⇒ Mode = Process
Auf(Innerhalb) des Panels befindet sich ein Label zum Beschriften und ein Botton um die Pause zu beenden. Auch diesem Button weisen wir wieder ein Skript zu und wechseln wieder in den 2D-Editor und selektieren dort den Button.
Node ⇒ Signale ⇒ BaseButton ⇒ pressed()
erstellen wir eine Funktion und im Dialogfenster weisen wir diese dem Button pause_end zu. Danach erweitern wir die Funktion um diese Zeilen:
func _on_pause_end_pressed(): $"../../Panel".hide() # Panel unsichtbar get_tree().paused = false
Das Panel soll zunächst nicht sichtbar sein, deswegen
Inspektor ⇒ Visibility ⇒ Visibility = Aus