Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Timer¶
倒数计时器。
描述¶
Timer 即计时器节点,是一种倒计时器,也是引擎中最简单的处理基于时间的逻辑的方法。计时器在等待 wait_time 结束后就会发出 timeout 信号。
计时器进入场景树时,可以使用 start 手动启动。如果 autostart 为 true
,计时器节点也会自动启动。
可以在编辑器中添加并配置计时器节点,无需编写特别多的代码。计时器发出的 timeout 信号可以在编辑器的“节点”面板中连接:
func _on_timer_timeout():
print("是时候表演真正的技术了!")
注意:如果只想创建一次性的计时器,不想实例化节点,请使用 SceneTree.create_timer。
注意:计时器会受到 Engine.time_scale 的影响。时间缩放值越大,计时器结束得越早。计时器的处理频率取决于帧率或 Engine.physics_ticks_per_second。
教程¶
属性¶
|
||
|
||
|
||
|
方法¶
is_stopped() const |
|
void |
|
void |
stop() |
信号¶
timeout() 🔗
当计时器计时完成时发出。
枚举¶
enum TimerProcessCallback: 🔗
TimerProcessCallback TIMER_PROCESS_PHYSICS = 0
在物理处理帧中更新计时器(见 Node.NOTIFICATION_INTERNAL_PHYSICS_PROCESS)。
TimerProcessCallback TIMER_PROCESS_IDLE = 1
在处理(渲染)帧中更新计时器(见 Node.NOTIFICATION_INTERNAL_PROCESS)。
属性说明¶
如果为 true
,则计时器将在进入场景树时自动启动。
注意:计时器进入场景树后,该属性会自动设置为 false
。
如果为 true
,则计时器将在完成时停止。否则默认情况下会自动重新启动。
如果为 true
,则计时器处于暂停状态。即便调用了 start,处于暂停状态的计时器也不会进行处理,必须将这个属性设回 false
才会继续。
TimerProcessCallback process_callback = 1
🔗
void set_timer_process_callback(value: TimerProcessCallback)
TimerProcessCallback get_timer_process_callback()
指定计时器在主循环的哪个时间点进行更新(见 TimerProcessCallback)。
float get_time_left()
计时器的剩余时间,单位为秒。如果计时器处于停止状态,则始终为 0
。
注意:这个属性是只读的,无法进行修改。基于的是 wait_time。
计时器完成计时所需的时间,单位为秒。这个属性也可以在每次调用 start 时设置。
注意:计时器的处理只能在物理帧或处理帧进行一次(取决于 process_callback)。如果帧率不稳定,则计时完成所需的时间也可能不一致,等待时间小于 0.05
秒左右的情况下尤为明显。如果计时器非常短,建议自己编写代码,不要使用 Timer 节点。计时器还会受到 Engine.time_scale 的影响。
方法说明¶
如果定时器处于停止状态或尚未启动,则返回 true
。
void start(time_sec: float = -1) 🔗
如果计时器尚未启动,则启动计时器。如果计时器不在场景树中则会失败。如果 time_sec
大于 0
,则会将其用于 wait_time。
注意:这个方法不会恢复已暂停的定时器。见 paused。
void stop() 🔗
停止计时器。