bailandi
本帖最后由 bailandi 于 2023-1-2 16:50 编辑

如果你还不了解活塞动作的大致分段和延迟以及瞬推特性,建议先看:
械电分析学(1):活塞的延迟怎么算?
械电分析学(2):短脉冲+活塞=?
如果你已经对单个活塞的行为有足够的了解,那就可以继续了。本文会初步介绍多个活塞之间的相互作用。内容并不多但是互相关联,就不分小标题了。文中的时间单位“t”,一律指红石刻。为了方便,会直接用“活塞”指代粘性活塞。图片演示使用游戏版本为1.10.2,用了材质包。建议跟着教程自己在游戏中摆一摆试一试,理解起来更容易。文章得出的结论在其他版本可能不适用,也可能本身就不准确,欢迎讨论。

在第(2)章中提到了“运动中的方块”,这里继续使用这个概念。运动中的方块以及活塞完成伸出后静止的活塞基座和活塞臂都是无法被别的活塞推拉的,被推拉的活塞在运动过程中是没法动作的(或者说处于“透明状态”)。对于处于一次运动之外的活塞而言,运动中的方块相当于没法被推拉、阻挡它们推动的黑曜石。那么,这个阻挡推动的“黑曜石”的范围是多少呢?研究这个问题之前,先明确一个“目标位置”的概念(也是我为了教程方便生造的)。运动中的方块在完成运动时将到达的位置(也就是将在那个位置复原),就叫做“目标位置”。比如一个活塞推动一个羊毛,活塞基座不移动,它的目标位置就是原位;活塞臂的目标位置自然是活塞基座前面一格;羊毛的目标位置则在它的原位的前面一格。于是,三个运动中的方块有三个不同的目标位置。

先看个简单的例子:

两个装置中分别拉下拉杆后很明显只会有一个活塞伸出。逻辑上这不难想通,因为两个活塞显然不能把两个方块推到同一个位置。但是,更直接的原因是当某一个活塞开始推出时,另一个活塞就被阻挡了。也就是说,活塞在开始推出后、完成推出前,运动中的方块会“占据”目标位置,不让别的活塞也往被“占据”的位置推方块,尽管方块还没有到达目标位置。我们可以得出这样的结论:
运动中的方块的目标位置会阻挡别的活塞的推动。
听起来有点抽象,但我实在没法描述得更好了。所谓的“目标位置阻挡”,可以理解为:对别的活塞而言,运动中的方块相当于在其目标位置提前放置了阻挡推动的方块。如果非要想运动中的方块这样做的原因,可以认为是防止同一个位置(即它的目标位置)同时有两个方块推过来,所以要提前“占据”目标位置。扯了这么多废话,下面举一个和粘液块相关的例子:

拉下拉杆后,上面的活塞被激活,但是被黑曜石阻挡,无法推出。等到中继器亮起后激活下面的活塞,它就会把两个粘液块连同一个羊毛一起推出。这个羊毛的目标位置在它上方一格,这个位置会阻挡别的活塞的推动;但是羊毛原来所在的位置不会阻挡。或者说,运动中的方块“占据”目标位置,但是不“占据”原位。于是,可以看到两个活塞同时伸出,也就是在羊毛开始被推动(或者说“开始离开原位”?)的同时它左边的活塞就开始伸出了。
上面得到的结论,在活塞收回时也是适用的。比如下图的情况:

把红石块上的红石火把打掉并重新放置,就可以给中继器一个短脉冲。两个中继器都是4档的,不难看出在第一个中继器熄灭的同时第二个中继器就会亮起。此时,下面的活塞开始收回,把绿色羊毛拉下去,同时绿色羊毛就开始离开原位,不会阻挡上面的活塞的推动。结果如下:

最后,再举一个与高频红石相关的例子:

装置很简单,就是一个经典的高频接两个活塞。但是,开启高频后你会发现两个活塞交替伸出,而不是某一个活塞一直频繁伸出,另一个活塞不动。可以这样分析:在第一次脉冲时,明显两个活塞的其中一个会伸出,另一个被阻挡。1t后第一次脉冲结束,伸出的活塞就开始收回。再过1t第二次脉冲就来了,但这时刚才伸出的活塞还没有完成收回,活塞臂却已经不会阻挡另一个活塞了(因为它的目标位置是其所属活塞的基座),另一个活塞就先伸出。像这样,两个活塞就会交替伸出了。

那么本文的主要内容就到这里。前3章介绍的,都是围绕活塞的基本特性,在第(4)章,我们就要直面半连接性,以及更重要地,研究更广泛的、方块更新相关的特性咕咕咕




3213535620
沙发