Neustart per Tastendruck
Teil des Abschnitts Spielregeln der Godot-Journey von Coddy. Lektion 15 von 29.
Diese Zeile verwirft die Szene und lädt sie frisch aus ihrer Datei:
get_tree().reload_current_scene()Das neue Spiel beginnt mit drei Leben, der Spieler steht auf dem grünen Quadrat und „Game Over“ ist ausgeblendet.
Main ist ebenfalls pausiert, sodass sein _process die Taste nie erkennt. Setze den process_mode von Main selbst auf Node.PROCESS_MODE_ALWAYS. Die untergeordneten Elemente übernehmen diesen Wert, mit Ausnahme des Spielers. Die Szene setzt den Spieler auf „Pausable“, sodass er weiterhin angehalten wird.
Durch das Neuladen wird das Spiel nicht fortgesetzt. Setze get_tree().paused = false, bevor du neu lädst, sonst beginnt das neue Spiel pausiert.
Aufgabe
EinfachLass den Spieler nach dem Spielende E drücken, um erneut zu spielen:
- Setze in
_ready()denprocess_modedieses Knotens aufNode.PROCESS_MODE_ALWAYS. - Hebe in
_process()die Pausierung des Spiels auf und lade die Szene neu, wennlives0 ist undactiongerade gedrückt wurde.
Probier es selbst
extends Node2D
var lives = 3
func _ready():
$HUD/Lives.text = "Lives: %d" % lives
$Player.hurt.connect(_on_player_hurt)
$Blink.timeout.connect(_on_blink_timeout)
$Blink.process_mode = Node.PROCESS_MODE_ALWAYS
func _process(delta):
pass
func _on_player_hurt():
lives -= 1
$HUD/Lives.text = "Lives: %d" % lives
if lives == 0:
$HUD/GameOver.visible = true
$HUD/Hint.visible = true
get_tree().paused = true
func _on_blink_timeout():
if lives == 0:
$HUD/GameOver.visible = not $HUD/GameOver.visible
Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Spielregeln
Übe selbstständig: Godot-Playground