# 时间
游戏里有两种可量度的时间: 现实时间及游戏刻。
## 现实时间
现实时间就不用多说了,就是时分秒,相信大家都十分熟悉了。
然而在游戏里使用时分秒的东西真的不多,主要是因为游戏内的时间未必与现实世界同步,因为游戏内的时间单位为游戏刻。
> **知多一点点**:获取现实过去的时间
>
> `worldborder`里的时间参数是真·时间参数,以现实时间计算的。
> 因此我们可以透过设置长时间、大长度改变,然后以`stats`及`worldborder get`获取边界的直径,以计算过去了的时间。
## 游戏刻
游戏刻(game tick, 简写: gt)是游戏的基础时间单位。游戏会在1刻里做很多事情,如执行命令、进行一部分红石元件的更新、骑乘实体的位置改变等。故部分操作需要等待下一游戏刻才可见效,正是因为游戏把那些操作放进了一个列表,我们通常称作NTE(Next Tick Entry),等待游戏刻开始/结束时的某个时段执行。
一般情况下是每秒20个游戏刻(最多20,可以更少),所以一般来说1游戏刻就是0.05秒(最短0.05秒)。
然而,如果电脑无法保持这个速度,每游戏刻的时间就可能延长。由于很多东西都是使用游戏刻来计算时间,所以如果游戏刻减慢,很多东西需要的时间会延长,而这也是大型命令系统中常见的卡顿。
假如1个游戏刻达到了1分钟的长度(当服务器配置不足以运行那么多命令/那命令需要的计算太多的时候可能出现), 服务器一般会崩溃。因此请注意别玩得太过。
## 顺序
命令执行即使是同一游戏刻,也不可能是真正的同时的,故此执行的先后次序十分重要。
举个例子:
+ A: 先说出自己的分数,然后让自己的分数+1
+ B: 先让自己的分数+1,然后说出自己的分数
这两个情况的输出一样么?明显不同!
假设一开始的分数为x,A的输出为x,B的输出为x+1。
故此,确定命令执行前后是十分重要的。
不肯定执行顺序的时候可以用`say`命令输出不同数字,通过那些数字推断执行顺序。