我保证不会有很多的代码截图的,另,事实证明,我最好还是不要一次性全发出来比较好。
先发一段
我们先讨论一下各种红石元件的激活原理:
中继器 和 红石火把:
对于外部红石信号的响应方式:方块更新
自我更新改变状态的方式:UpdateTick(难翻译QAQ)
激活过程:方块更新→标记UpdateTick→1至4刻延迟→Updatetick执行
活塞:
内部更新方式:当有方块事件时(OnBlockEventReceived)
以方块事件(BlockEvent)驱动,方块更新响应
激活过程:方块更新→添加事件→当有方块事件时(OnBlockEventReceived)
红石线:
激活过程:方块更新→中间方法→结束方法(英文太长且难以翻译)
关闭过程:这个是特有的,因为这个红石线的能量,在关上时不是一下降到0的,而是一个逐渐降低的过程,如果原来的红石线是15格的能量,那么打掉输入后,会变成14→13→12......→0的过程,并且在一刻内发生,这就是“微观延迟”了。
这里就引出了微观延迟,微观延迟只是我命的一个名称,它指的是:
在一个游戏刻中发生状态转换的一种延迟,主要与软件运行顺序有关,会被“宏观延迟”抹平,即这一游戏刻中的微观延迟将不会对下一游戏刻“产生”影响。
而与之相对宏观延迟指的是:至少一个红石刻的延迟,只在下一刻及以后体现。
同时既然没有短于一刻的延迟就没有短于一刻脉冲,所以在正正正正正好的帖子里说的0.5与0刻脉冲其实都必然有1刻,只是因为微观延迟的一些现象与一些BUG(我姑且说是BUG)导致的不同反应。实际上并没有少于一刻的脉冲,0t与0.5t只是一种比较感性的说法而已。
先发一段
我们先讨论一下各种红石元件的激活原理:
中继器 和 红石火把:
对于外部红石信号的响应方式:方块更新
自我更新改变状态的方式:UpdateTick(难翻译QAQ)
激活过程:方块更新→标记UpdateTick→1至4刻延迟→Updatetick执行
活塞:
内部更新方式:当有方块事件时(OnBlockEventReceived)
以方块事件(BlockEvent)驱动,方块更新响应
激活过程:方块更新→添加事件→当有方块事件时(OnBlockEventReceived)
红石线:
激活过程:方块更新→中间方法→结束方法(英文太长且难以翻译)
关闭过程:这个是特有的,因为这个红石线的能量,在关上时不是一下降到0的,而是一个逐渐降低的过程,如果原来的红石线是15格的能量,那么打掉输入后,会变成14→13→12......→0的过程,并且在一刻内发生,这就是“微观延迟”了。
这里就引出了微观延迟,微观延迟只是我命的一个名称,它指的是:
在一个游戏刻中发生状态转换的一种延迟,主要与软件运行顺序有关,会被“宏观延迟”抹平,即这一游戏刻中的微观延迟将不会对下一游戏刻“产生”影响。
而与之相对宏观延迟指的是:至少一个红石刻的延迟,只在下一刻及以后体现。
同时既然没有短于一刻的延迟就没有短于一刻脉冲,所以在正正正正正好的帖子里说的0.5与0刻脉冲其实都必然有1刻,只是因为微观延迟的一些现象与一些BUG(我姑且说是BUG)导致的不同反应。实际上并没有少于一刻的脉冲,0t与0.5t只是一种比较感性的说法而已。