Menu
CoddyTech

Режим процесса

Часть раздела Правила игры путешествия по Godot на Coddy. Урок 14 из 29.

Когда игра приостановлена, все узлы останавливаются. Некоторые узлы должны продолжать работать, например мигающее сообщение Game Over или меню паузы.

Параметр process_mode узла определяет:

  • Node.PROCESS_MODE_INHERIT: вести себя так же, как родительский узел. Это значение по умолчанию.
  • Node.PROCESS_MODE_PAUSABLE: останавливаться, когда игра приостановлена.
  • Node.PROCESS_MODE_ALWAYS: продолжать работать независимо от того, приостановлена игра или нет.
$Music.process_mode = Node.PROCESS_MODE_ALWAYS

Теперь скрипт мигает сообщением Game Over с помощью Timer под названием Blink. Пауза останавливает этот таймер, поэтому сообщение совсем не мигает.

challenge icon

Задание

Легко

Пусть надпись Game Over мигает, пока игра приостановлена.

  1. В _ready() возьми таймер Blink.
  2. Установи для него process_mode значение Node.PROCESS_MODE_ALWAYS.

Нажми «Играть» и потеряй три жизни: Game Over мигает поверх замороженной игры. Затем нажми «Проверить».

Попробуйте сами

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

Все уроки раздела Правила игры

Потренируйтесь самостоятельно: Песочница Godot