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, dem Spieler auf dem grünen Quadrat und ausgeblendetem „Game Over“.

Main ist ebenfalls pausiert, deshalb bekommt sein _process die Taste nie mit. Setze den eigenen process_mode von Main auf Node.PROCESS_MODE_ALWAYS. Die untergeordneten Elemente übernehmen diese Einstellung, mit Ausnahme des Spielers. Die Szene setzt den Spieler auf „Pausierbar“, sodass er weiterhin anhält.

Beim erneuten Laden wird das Spiel nicht fortgesetzt. Setze get_tree().paused = false, bevor du neu lädst, andernfalls 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 selbst auf Node.PROCESS_MODE_ALWAYS (kein $).
  2. Wenn in _process() lives 0 ist und action gerade gedrückt wurde, hebe die Pause des Spiels auf und lade dann die Szene neu.

Drücke „Spielen“, verliere drei Leben und drücke E: Ein neues Spiel beginnt mit Lives: 3. Drücke dann „Prüfen“.

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