命中停顿
本课属于 Coddy Godot 学习旅程的“游戏体验”单元。第 17 课,共 23 课。
命中冻结会在攻击命中时让游戏暂停一瞬间,让命中感觉更有力度。
Engine.time_scale 是游戏时钟的速度。设为 1 时,游戏正常运行。设为 0.05 时,移动、补间和计时器的速度会慢二十倍。
Engine.time_scale = 0.05
await get_tree().create_timer(0.1, true, false, true).timeout
Engine.time_scale = 1.0普通计时器使用变慢后的时钟运行,所以 0.1 秒会持续两秒的实际时间。create_timer 中最后一个 true 会让计时器忽略 time_scale,并按实际秒数计时。它前面的两个值是通常的默认值。
务必将 time_scale 设回 1。它会影响整个游戏,并保持该设置,直到你的代码修改它。
挑战
中等命中时让游戏短暂停顿。
- 在
hit()中的闪光效果之后,将Engine.time_scale设为0.05。 - 如上所示,使用一个不受时间缩放影响的计时器等待 0.1 秒实际时间。
- 将
Engine.time_scale设回1.0。
按 运行,再按 E:无人机会短暂停下来。然后点击 检查。
亲手试试
extends Node2D
func hit():
modulate = Color(4, 4, 4)
var tween = create_tween()
tween.tween_property(self, "modulate", Color(1, 1, 1), 0.3)
游戏体验中的所有课
自己练习: Godot 在线编辑器