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 modo predeterminado.Node.PROCESS_MODE_PAUSABLE: detenerse cuando el juego está en pausa.Node.PROCESS_MODE_ALWAYS: seguir ejecutándose, esté el juego 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ácilMantén «Game Over» parpadeando mientras el juego está en pausa.
- En
_ready(), toma el temporizadorBlink. - Establece su
process_modeenNode.PROCESS_MODE_ALWAYS.
Presiona «Jugar» y pierde tres vidas: «Game Over» parpadea sobre el juego congelado. Después, presiona «Comprobar».
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
Todas las lecciones de Reglas del juego
Practica por tu cuenta: Playground de Godot