Menu
CoddyTech

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.

challenge icon

Aufgabe

Einfach

Lass den Spieler nach dem Spielende E drücken, um erneut zu spielen:

  1. Setze in _ready() den process_mode dieses Knotens auf Node.PROCESS_MODE_ALWAYS.
  2. Hebe in _process() die Pausierung des Spiels auf und lade die Szene neu, wenn lives 0 ist und action gerade 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
quiz iconTeste dich selbst

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