Режим процесса
Часть раздела Правила игры путешествия по 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. Пауза останавливает этот таймер, поэтому сообщение совсем не мигает.
Задание
ЛегкоПусть надпись Game Over мигает, пока игра приостановлена.
- В
_ready()возьми таймерBlink. - Установи для него
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
Все уроки раздела Правила игры
3Жизни и поражения
ЖизниИгра оконченаПоставить игру на паузуРежим процессаПерезапуск по нажатию клавишиПотренируйтесь самостоятельно: Песочница Godot