Timer¶
倒计时计时器。
描述¶
Timer 节点是一个倒计时定时器,是在引擎中处理基于时间的逻辑的最简单方法。当定时器的 wait_time 倒计时结束时,它将发出 timeout 信号。
在定时器进入场景树后,可以使用 start() 手动启动它。如果 autostart 为 码]true,定时器节点也会自动启动。
无需编写太多代码,就可以在编辑器中添加并配置定时器节点。它发出的 timeout 信号也可以通过编辑器中的节点面板进行连接:
func _on_timer_timeout():
print("Time to attack!")
注意:要在不实例化节点的情况下创建一次性定时器,请使用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
更新每个物理进程帧的计时器(参见Item.NOTIFICATION_INTERNAL_PHYSICS_PROCESS)。
TimerProcessCallback TIMER_PROCESS_IDLE = 1
更新每个进程(渲染)帧的定时器(参见Item.NOTIFICATION_INTERNAL_PROCESS)。
属性说明¶
如果true,则计时器在进入场景树时会立即启动。
注意:定时器进入树后,此属性自动设置为false。
注意:当计时器在编辑器中运行时,此属性不执行任何操作。
bool ignore_time_scale = false 🔗
如果true,计时器将忽略Engine.time_scale并使用真实的经过时间进行更新。
如果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() 🔗
停止计时器。