meta data for this page
📚 差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
scripting:native:timer [2023/09/05 13:51] – bibiboxs | scripting:native:timer [2025/06/13 07:28] (当前版本) – bibiboxs | ||
---|---|---|---|
行 1: | 行 1: | ||
< | < | ||
- | # Timer | + | # Native/Timer |
- | 计时器是开发阶段常用功能,可进行`等待指定时间\间隔几次`执行某段代码。 | + | 计时器是开发阶段常用功能,可进行**等待指定时间\间隔几次**执行某段代码。 |
**计时器实例在【切换世界\地图】时将会重置(切换世界前创建的计时器,在加载新世界时将会被清空)。** | **计时器实例在【切换世界\地图】时将会重置(切换世界前创建的计时器,在加载新世界时将会被清空)。** | ||
行 50: | 行 50: | ||
- | ## Function | + | ## Static |
- | ### Timer.Create() | + | ### Env.Timer.GetRealTime() |
+ | |||
+ | > 获取当前时间(Timer所用的时间单位,以秒为单位,并非现实时间)。 | ||
+ | > | ||
+ | > **扩展:可通过用`Timer.GetRealTime() - myTimer.LastTime `获取某个timer下次执行剩余时间。** | ||
+ | |||
+ | ```javascript | ||
+ | function Env.Timer.GetRealTime(): | ||
+ | ``` | ||
+ | |||
+ | |||
+ | |||
+ | ### Env.Timer.Create() | ||
> 新建一个计时器,定时\定次执行指定代码。 | > 新建一个计时器,定时\定次执行指定代码。 | ||
> | > | ||
- | > 如果`repeat == 0`则表示无限重复计时器。 | + | > **如果`repeat == 0`则表示无限重复计时器。** |
+ | |||
+ | **==特别注意:`Timer`代码可能在延迟后的不同的阶段执行,请注意执行时检查相关引用是否存在(因为有可能在此期间,某些引用已经失效,导致空指针异常)。==** | ||
```javascript | ```javascript | ||
- | function Timer.Create( action: Action, time: float, repeat: int = 1, tag: string = null ): Timer // | + | function |
``` | ``` | ||
```javascript | ```javascript | ||
- | Timer.Create(() => { | + | Env.Timer.Create(() => { |
- | DLog("间隔一秒后,输出这段话"); | + | DLog("Output in one second!"); |
}, 1); | }, 1); | ||
- | Timer.Create(() => { | + | Env.Timer.Create(() => { |
- | DLog("每间隔一秒,输出一次这段话,总共输出三次"); | + | DLog("Output in one second. Output three times!"); |
}, 1, 3); | }, 1, 3); | ||
``` | ``` | ||
行 74: | 行 88: | ||
- | ### Timer.Remove() | + | ### Env.Timer.Remove() |
> 关闭一个计时器,销毁实例。 | > 关闭一个计时器,销毁实例。 | ||
```javascript | ```javascript | ||
- | function Timer.Remove( timer: Timer ): bool | + | function |
``` | ``` | ||
```javascript | ```javascript | ||
- | let myTimer = Timer.Create(() => { | + | let myTimer = Env.Timer.Create(() => { |
DLog(" | DLog(" | ||
}, 1); | }, 1); | ||
- | if(myTimer != null) Timer.Remove(myTimer); | + | if(myTimer != null) Env.Timer.Remove(myTimer); |
``` | ``` | ||
- | ### Timer.Find() | + | ### Env.Timer.Find() |
> 根据`Tag`标识查找一个计时器,返回找到满足条件的第一个计时器。 | > 根据`Tag`标识查找一个计时器,返回找到满足条件的第一个计时器。 | ||
行 99: | 行 113: | ||
```javascript | ```javascript | ||
- | function Timer.Find( tag: string ): Timer | + | function |
``` | ``` | ||
```javascript | ```javascript | ||
- | Timer.Create(() => { | + | Env.Timer.Create(() => { |
DLog(" | DLog(" | ||
- | }, 1).SetTag(" | + | }, 1).SetTag(" |
- | let findTimer = Timer.Find(" | + | let findTimer = Env.Timer.Find(" |
- | if(findTimer != null) Timer.Remove(myTimer); | + | if(findTimer != null) Env.Timer.Remove(myTimer); |
``` | ``` | ||
+ | |||
+ | ## Function | ||
### timer.SetTag() | ### timer.SetTag() | ||
行 123: | 行 139: | ||
function timer.SetTag( tag: string ) | function timer.SetTag( tag: string ) | ||
``` | ``` | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
</ | </ |