Menu
CoddyTech

命中停顿

本课属于 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。它会影响整个游戏,并保持该设置,直到你的代码修改它。

challenge icon

挑战

中等

命中时让游戏短暂停顿。

  1. 在 hit() 中的闪光效果之后,将 Engine.time_scale 设为 0.05。
  2. 如上所示,使用一个不受时间缩放影响的计时器等待 0.1 秒实际时间。
  3. 将 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 在线编辑器