那么是什么造成了1.7和1.8的区别呢?答案在于1.8中对于红石中继器/比较器的优先级判定代码有改动!在mc中,如果一个中继器/比较器前方的方块也是中继器/比较器,那么这个中继器/比较器的优先级就会被提高一级。原本中继器优先级是-2,比较器优先级是0,优先级提升之后,中继器优先级变为-3,比较器优先级变为-1。
此外,前方的中继器/比较器还必须满足一个条件才能提升此中继器的优先级,就是对于方向的判定。在1.7中,如果这两个中继器的方向相同,优先级提升将被取消。而在1.8中,这部分被修改为:如果这两个中继器的方向相反,优先级提升才被取消!
至于1.7到1.8为什么会有这种变动。。sbmojang
那么,优先级变化为什么会造成最后一个中继器不响应呢?我们举例一个中继器串:
这是相连的5个中继器接通比较器脉冲时的一个瞬间,我们先来证明一个现象:
如果相邻两个中继器的优先级相同,那么同gt内一定是前方的中继器先更新。比如图中从左数第2、3个中继器,一定是第3个中继器先更新。
反证:假设现在是第二个中继器先更新,那么在下1t,此中继器的更新将导致第三个中继器第一个被加入Next Tick Entry(这是smg?详情见
http://tieba.baidu.com/p/4078230299,顺便打广告QwQ),从而在下1t第三个中继器先更新。
好吧这个证明并不怎么严谨2333,知道事实确实是这样就行了。
我们来排一下这5个中继器的优先级:
-3、-3、-3、-3、-2.
从而,在1gt内,更新顺序从左数倒数第二个中继器开始,然后是第三个中继器,一直到第一个中继器:
这时最后一个中继器才被更新,但是:
这时它发现自己已经不需要熄灭了,又一个“你玩我”案例2333
@哆啦715 于是,最后一个中继器就会保持常亮,而其他中继器会正常响应。而在1.7中,这5个中继器优先级全部为-2,所以更新顺序依次从右到左,不会有不响应信号的情况。