处理模式
本课属于 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 闪烁。暂停会停止这个计时器,所以消息不会闪烁。
挑战
简单让“游戏结束”在游戏暂停时继续闪烁。
- 在
_ready()中,获取Blink计时器。 - 将它的
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 在线编辑器