您当前的位置:首页 >> 滚动 > > 
剖析侦测器的计划刻事件【MC刨根问底#2】
来源: 哔哩哔哩      时间:2023-08-24 23:37:35

我们常用的侦测器高频实际上具有更加复杂的计划刻事件

先说结论

常规的侦测器事件


【资料图】

侦测器受到面向的方块发出的pp更新,此时侦测器立即添加<2gt后亮起>的计划刻事件

在2gt延迟后,侦测器执行亮起计划刻

1) 侦测器改变自身状态,开始输出红石信号(powered=true),并以自身为中心发出pp更新

2) 侦测器添加<2gt后熄灭>的计划刻事件

3) 侦测器向指向(即红石信号输出方向)的方块及该方块的毗邻方块发出nc更新

在2gt延迟后,侦测器执行熄灭计划刻

1) 侦测器改变自身状态,停止输出红石信号(powered=false),并以自身为中心发出pp更新

2) 侦测器发出nc更新(同)

侦测器添加<2gt后熄灭>计划刻事件的特殊性

如果在同一gt内侦测器执行亮起计划刻事件之前,侦测器受到了pp更新,侦测器会在此时添加<2gt后熄灭>的计划刻事件

侦测器在执行亮起计划刻时,仍会尝试添加<2gt后熄灭>的计划刻事件,但此时由于计划刻队列中已经存在了该事件,此次添加失败

侦测器在TE事件添加<2gt后亮起>计划刻事件的特殊性

b36方块到位时,若该b36将转变的方块为侦测器,则它会先在当前位置添加一个侦测器2gt后亮起的计划刻,再执行侦测器到位

实验分析

由上述的常规结论和侦测器添加计划刻事件的特殊性,我们不难分析出玩家放置的侦测器高频(6gt)与活塞推动的侦测器高频(4gt)的差异原因。接下来让我们解释开头的那句话“我们常用的侦测器高频实际上具有更加复杂的计划刻事件”。

以下我们假设玩家和活塞操作的都是侦测器1(分别做了图示分析和文字分析,其中部分pp更新与计划刻添加失败省略)

玩家放置:

[侦测器1} {侦测器2]

0gt-NU-玩家放置侦测器1-侦测器2添加计划刻

2gt-NTE-侦测器2亮起(pp更新-侦测器1添加亮起计划刻-侦测器2添加熄灭计划刻)

4gt-NTE-侦测器1亮起(侦测器1添加熄灭计划刻)-侦测器2熄灭

6gt-NTE-侦测器1熄灭(pp更新-侦测器2添加亮起计划刻)

循环

活塞推动:

0gt-BE-活塞推动侦测器1(pp更新-侦测器2添加亮起计划刻)

2gt-NTE-侦测器2亮起(侦测器2添加熄灭计划刻)

2gt-TE-侦测器1添加亮起计划刻-侦测器1的b36到位

4gt-NTE-侦测器2熄灭(pp更新-侦测器1添加熄灭计划刻)-侦测器1亮起(pp更新-侦测器2添加亮起计划刻)

6gt-NTE-侦测器1熄灭(pp更新-侦测器2添加熄灭计划刻)-侦测器2亮起(pp更新-侦测器1添加亮起计划刻)

循环

总结

侦测器除在常规状态下受到pp更新时会添加亮起计划刻事件外,还会:

在同一gt内、执行亮起计划刻前受到pp更新,会添加熄灭计划刻

在b36到位的那一游戏刻的TE事件中,会在b36到位前添加亮起计划刻

标签:

X 关闭

X 关闭

观点