1.8为什么无法通过1t负脉冲 关于中继器组bug源码解析

时间:2017-09-26 来源:88130安卓下载 作者:佚名

  1.8为什么无法通过1t负脉冲 关于中继器组bug源码解析。那下面给大家分享的是关于1.8中中继器不能通过1t负脉冲的问题解析,那有感兴趣的玩家不妨进来看看哦~希望对大家有所帮助。

  游戏园我的世界官方群:325049520 二群:256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!

  玩服务器的小伙伴们可以加入:464651602 群一起联机玩游戏哦!

  如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~

  传送门:我的世界1.9更新内容汇总

  之前在和nenn触的闲聊中,谈到了中继器串在1.8更新后无法通过1t负脉冲的问题,这显然是常识理解不了的,正好我对mc源码比较熟悉,结合源码终于对此现象做出完美的解释XD

  如图所示电路,在拉杆信号的下边缘,会输出一个1t负脉冲,后面接有3个中继器。中继器的响应情况是,前两个中继器可以观察到熄灭了1t,而最后一个中继器却毫无反应。类似现象可以拓展到N个中继器,而且只有最后一个中继器不响应。

  类似的比较器脉冲也有此问题:

  1.8为什么无法通过1t负脉冲 关于中继器组bug源码解析。那下面给大家分享的是关于1.8中中继器不能通过1t负脉冲的问题解析,那有感兴趣的玩家不妨进来看看哦~希望对大家有所帮助。

  游戏园我的世界官方群:325049520 二群:256070479 欢迎各路喜爱我的世界的小伙伴们加入讨论!

  玩服务器的小伙伴们可以加入:464651602 群一起联机玩游戏哦!

  如果你有心仪的作品或者心得分享的话,欢迎来游戏园投稿,大家可以点击>>>投稿<<<进行投稿哦~ 有奖品哦~

  传送门:我的世界1.9更新内容汇总

  之前在和nenn触的闲聊中,谈到了中继器串在1.8更新后无法通过1t负脉冲的问题,这显然是常识理解不了的,正好我对mc源码比较熟悉,结合源码终于对此现象做出完美的解释XD

  如图所示电路,在拉杆信号的下边缘,会输出一个1t负脉冲,后面接有3个中继器。中继器的响应情况是,前两个中继器可以观察到熄灭了1t,而最后一个中继器却毫无反应。类似现象可以拓展到N个中继器,而且只有最后一个中继器不响应。

  类似的比较器脉冲也有此问题:

  最后一个中继器保持常亮,不响应信号。而这一切在1.7版本中都还运行完好,所有中继器都有响应。

  那么是什么造成了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,从而在下1t第三个中继器先更新。

  好吧这个证明并不怎么严谨2333,知道事实确实是这样就行了。

  我们来排一下这5个中继器的优先级:

  -3、-3、-3、-3、-2.

  从而,在1gt内,更新顺序从左数倒数第二个中继器开始,然后是第三个中继器,一直到第一个中继器:

  这时最后一个中继器才被更新,但是:

  这时它发现自己已经不需要熄灭了,又一个“你玩我”案例2333 于是,最后一个中继器就会保持常亮,而其他中继器会正常响应。而在1.7中,这5个中继器优先级全部为-2,所以更新顺序依次从右到左,不会有不响应信号的情况。

  要避免这种情况,只需要让整串电路从左到右的优先级不会增加就行,解决方法可以有,把相邻的中继器分开,使用比较器降低优先级,以及加一个方向不同的中继器/比较器:

  好,现在这个问题完美解决,撒花~

  此外,还有几个以前无法解释的黑石现象,同样可以用优先级来解释

  身为红石渣的我还是把它拆开吧。。

  当收到拉杆下边缘信号时,左边火把会输出一个短脉冲。相同的原理,想要左边火把有响应,只需要左边火把先于右边火把更新就行了,于是利用了比较器优先级低于中继器的原理。我们也可以利用拉杆的更新顺序实现相同的效果:

  PS:在此非常感谢我的世界玩家Gamepiaynmo的分享。

  以上就是1.8为什么无法通过1t负脉冲 关于中继器组bug源码解析。更多精彩尽在游戏园我的世界专区。

  相关攻略推荐:

  我的世界1.9bug:怎么爬进一格方块中

  惊现我的世界1.9BUG 无铁轨永动矿车

  我的世界1.9pre2版本发布 修复诸多bug

  我的世界半红石bug隐藏门制作详解

热门搜索

手游排行榜

  • 最新排行
  • 最热排行
  • 评分最高