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_ALWAYSDas Skript lässt Game Over jetzt mithilfe eines Timer namens Blink blinken. Durch die Pause wird dieser Timer angehalten, sodass die Nachricht nie blinkt.
Aufgabe
EinfachLass „Game Over“ weiter blinken, während das Spiel pausiert ist.
- Nimm in
_ready()den TimerBlink. - Setze seinen Wert für
process_modeaufNode.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