mechanism tick - Mini-World-Dev-Org/Mini-World-Wiki GitHub Wiki

游戏帧

定义

  • 游戏进程

游戏进程 为游戏从开始到当前时间的这段时间。
由于当前时间会随着时间推进,所以游戏进程也是不断变长的。

  • 游戏帧

游戏帧 是游戏进程的基本组成部分,以下简称帧。
不要将其与显示帧 和显卡帧等混淆,显示帧是玩家游戏界面更新进程的基本组成部分,它会根据前后游戏帧计算出中间值。
相同时间内,显示帧通常比游戏帧多,也可能比游戏帧低。

  • 当前帧

当前帧 是已知的最后一帧。

  • 帧数

由于帧是连续的,因此把它们依次排列,并标上从 0 开始的序号,则其中一帧在排列中的序号为这一帧的帧数 ,以下简称 tick

  • 时长

一帧到下一帧中间间隔的时间为这一帧的时长
图示游戏帧

性质

  1. 游戏的每一个时刻,都有且仅有唯一帧与之对应,也就是帧是连续的。
  2. 对于每一个自然数 tick 都有且仅有唯一帧与之对应(tick 值相等)
  3. 1帧的时长大约为 50ms ,但这不是固定的,多个连续帧的时长的平均数可近似的看做 50ms 。
  4. 所有游戏数据每帧才会更新一次。
  5. 由 2. 可以推出,延续性游戏事件(例如玩家挖掘方块)每帧触发一次。

使用方法

在脚本中可返回一个函数,则这个函数从返回时的那一帧开始每一帧都会调用该函数。
或者通过 [Game.Run](/Mini-World-Dev-Org/Mini-World-Wiki/wiki/Game.Run) 事件,该事件在游戏开始后没一帧都会触发一次。
可根据性质 3 来制作简单的计时器,但缺陷是 1 帧的时长不完全为 50ms ,如果发生了卡顿等事故则计时器误差会被严重拉大,可以使用 os.clock() 来修正误差。


最后更新: 2022/1/2