Menu
CoddyTech

处理模式

本课属于 Coddy Godot 学习旅程的“游戏规则”单元。第 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

现在,脚本会用一个名为 Blink 的 Timer 让 Game Over 闪烁。暂停会停止这个计时器,所以消息不会闪烁。

challenge icon

挑战

简单

让“游戏结束”在游戏暂停时继续闪烁。

  1. 在 _ready() 中,获取 Blink 计时器。
  2. 将它的 process_mode 设置为 Node.PROCESS_MODE_ALWAYS。

按下“开始”,并失去 3 条生命:“游戏结束”会在冻结的游戏画面上闪烁。然后点击“检查”。

亲手试试

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 在线编辑器