第一章:红石更新顺序
一.红石更新
也许,很多人看到本章标题,就开始打算一脸懵逼地退出去了,很多人甚至没听说过这个词。
那么,什么是红石更新呢?
简单来说,比如你看这里有一条红石线,它是熄灭的。
如果我给它一个信号,让它从熄灭变成点亮,那么它就被更新了。
简单考虑,更新就是从无能量状态变成有能量状态,狭义上也可以理解为被充能。
二.红石更新顺序
更新顺序的研究来自于对Java版MC代码的反编译剖析,代码上的分析请看这里(虽然我相信你看不懂)。
你要知道,MC是一个方块的世界,每个方块都有六个面,那么如果六个面的被激活元件相互对立,它会先激活哪一个呢?
这便要考虑红石的位置性和方向性。
这里引用国外大佬Earthcomputer的话:
位置性:指装置在不同位置的行为不同。
方向性:指装置在不同方向的行为不同。
首先,更新事件的发生要有一个更新源。
如果你们有看过我相关系列的《红石·理论基础》,会发现我在介绍每一个电源的时候都介绍了它们的激活范围。
以红石块为例,它自身占用一个方块,这个方块肯定被充能了,它还会充能周围的6个相邻方块,也就是一次充能7个方块,因此,红石块的更新源为7。
这里同样引用国外大佬Earthcomputer的话:
更新源(notifier):指产生更新的源,红石粉具有7个更新源,即红石粉本身+6个毗邻方块,每个更新源会再更新毗邻的6个方块。
众所周知,红石是会传导的,而传导就是一次次更新扩散下去,直到最后一次更新没有激活任何可以产生更新源的方块为止。
其次,电源有了,周围六个面都要它更新,更新顺序是什么呢?
这里直接揭晓了:
每个更新源更新周围的6个方块时符合简单理论(-x +x -y +y -z +z),但7个更新源的更新先后顺序会随位置变化。
转为汉语就是“西,东,下,上,北,南 ”。
关于方向的判断,你可以打开F3,然后运动一下,看看坐标xyz三数的变化。
举个例子,比如我站在地面上,朝一个方向走,发现x坐标在减小,那很好,这就是-x方向,也就是西,这个方向的红石是最先被激活的。
如果你有时间而且想进一步学习的话,建议看一下这个半小时的原视频,祝你好运。不想看自行跳过。
三.更新顺序实践
如果你坚持读到这里,那么很好,你的理论已经具备了,要开始运用到实践中了。
有人要问,诶冷域,你这不是理论课吗,怎么还有实践部分?
废话啦,上面那么多字,有一张实物图吗?只知道这些啥-x +x,你会用吗?
是时候来来几道题做做了!
【TECO题库·特性篇·第4题】如图所示,两个对向活塞相互对立,一次只会有一个活塞的活塞臂弹出,已知向右是-x方向,向左是+x方向,请问拉动拉杆,哪一个活塞会弹出呢?
A.左边的 B.右边的
正确答案:A
分析:由于向右是-x方向,根据红石更新顺序理论,应该是面向右也就是左边的那个活塞弹出,如图所示:
感觉咋样?再来一题?
【TECO题库·特性篇·第5题】如图所示,中间两个对向活塞相互对立,一次只会有一个活塞的活塞臂弹出,已知向右是-x方向,向左是+x方向,且已知红石线传导信号是同时的,请问拉动拉杆,哪一个活塞会弹出呢?
A.下面的 B.上面的
正确答案:A
分析:由于向右是-x方向,根据红石更新顺序理论,应该是面向右也就是左边的那个一阶活塞先把下面的二阶毗邻活塞激活,因为x>y,所以这里只考虑左右-x+x,不考虑上下-y+y,如图所示:
你学会了吗?是不是有种茅塞顿开的感觉?再来一道变式训练练练手!
【TECO题库·特性篇·第6题】如图所示,中间两个对向活塞相互对立,一次只会有一个活塞的活塞臂弹出,已知向右是-x方向,向左是+x方向,且已知红石线传导信号是同时的,请问拉动拉杆,哪一个活塞会弹出呢?
A.下面的 B.上面的
正确答案:B
分析:同上一题,由于向右是-x方向,根据红石更新顺序理论,应该是面向右也就是左边的那个一阶活塞先把上面的二阶毗邻活塞激活,因为x>y,所以这里只考虑左右-x+x,不考虑上下-y+y,如图所示: