Menu
CoddyTech

Prozessmodus

Teil des Abschnitts Spielregeln der Godot-Journey von Coddy. Lektion 14 von 29.

Ein pausiertes Spiel hält jeden Knoten an. Einige Knoten sollten weiterlaufen, zum Beispiel eine blinkende Game-Over-Nachricht oder ein Pausenmenü.

Der process_mode eines Knotens bestimmt:

  • Node.PROCESS_MODE_INHERIT: das Verhalten des übergeordneten Knotens übernehmen. Dies ist die Standardeinstellung.
  • Node.PROCESS_MODE_PAUSABLE: anhalten, wenn das Spiel pausiert ist.
  • Node.PROCESS_MODE_ALWAYS: immer weiterlaufen, egal ob pausiert oder nicht.
$Music.process_mode = Node.PROCESS_MODE_ALWAYS

Das Skript lässt Game Over jetzt mithilfe eines Timer namens Blink blinken. Durch die Pause wird dieser Timer angehalten, sodass die Nachricht nie blinkt.

challenge icon

Aufgabe

Einfach

Lass „Game Over“ weiter blinken, während das Spiel pausiert ist.

  1. Nimm in _ready() den Timer Blink.
  2. Setze seinen Wert für process_mode auf Node.PROCESS_MODE_ALWAYS.

Drücke auf „Spielen“ und verliere drei Leben: „Game Over“ blinkt über dem eingefrorenen Spiel. Drücke dann auf „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)

func _on_player_hurt():
	lives -= 1
	$HUD/Lives.text = "Lives: %d" % lives
	if lives == 0:
		$HUD/GameOver.visible = true
		get_tree().paused = true

func _on_blink_timeout():
	if lives == 0:
		$HUD/GameOver.visible = not $HUD/GameOver.visible

Alle Lektionen in Spielregeln

Übe selbstständig: Godot-Playground