Modo de proceso
Parte de la sección Reglas del juego del Journey de Godot de Coddy. Lección 14 de 29.
Un juego en pausa detiene todos los nodos. Algunos nodos deberían seguir ejecutándose, como un mensaje parpadeante de Game Over o un menú de pausa.
El process_mode de un nodo decide:
Node.PROCESS_MODE_INHERIT: hacer lo mismo que el nodo padre. Este es el valor predeterminado.Node.PROCESS_MODE_PAUSABLE: detenerse cuando el juego está en pausa.Node.PROCESS_MODE_ALWAYS: seguir ejecutándose, esté en pausa o no.
$Music.process_mode = Node.PROCESS_MODE_ALWAYSAhora el script hace parpadear el mensaje Game Over con un Timer llamado Blink. La pausa detiene ese temporizador, así que el mensaje nunca parpadea.
Desafío
FácilHaz que Game Over siga parpadeando mientras el juego está en pausa. En _ready(), establece process_mode del temporizador Blink en Node.PROCESS_MODE_ALWAYS.
Pruébalo tú mismo
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
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Reglas del juego
Practica por tu cuenta: Playground de Godot