mechanism tick - Mini-World-Dev-Org/Mini-World-Wiki GitHub Wiki
游戏帧
定义
-
游戏进程
游戏进程 为游戏从开始到当前时间的这段时间。
由于当前时间会随着时间推进,所以游戏进程也是不断变长的。
-
游戏帧
游戏帧 是游戏进程的基本组成部分,以下简称帧。
不要将其与显示帧 和显卡帧等混淆,显示帧是玩家游戏界面更新进程的基本组成部分,它会根据前后游戏帧计算出中间值。
相同时间内,显示帧通常比游戏帧多,也可能比游戏帧低。
-
当前帧
当前帧 是已知的最后一帧。
-
帧数
由于帧是连续的,因此把它们依次排列,并标上从 0 开始的序号,则其中一帧在排列中的序号为这一帧的帧数 ,以下简称 tick
。
-
时长
一帧到下一帧中间间隔的时间为这一帧的时长 。
性质
- 游戏的每一个时刻,都有且仅有唯一帧与之对应,也就是帧是连续的。
- 对于每一个自然数
tick
都有且仅有唯一帧与之对应(tick
值相等) - 1帧的时长大约为 50ms ,但这不是固定的,多个连续帧的时长的平均数可近似的看做 50ms 。
- 所有游戏数据每帧才会更新一次。
- 由 2. 可以推出,延续性游戏事件(例如玩家挖掘方块)每帧触发一次。
使用方法
在脚本中可返回一个函数,则这个函数从返回时的那一帧开始每一帧都会调用该函数。
或者通过 [Game.Run](/Mini-World-Dev-Org/Mini-World-Wiki/wiki/Game.Run)
事件,该事件在游戏开始后没一帧都会触发一次。
可根据性质 3 来制作简单的计时器,但缺陷是 1 帧的时长不完全为 50ms ,如果发生了卡顿等事故则计时器误差会被严重拉大,可以使用 os.clock()
来修正误差。
最后更新: 2022/1/2