octopuscraft吧 关注:2,147贴子:44,160
  • 29回复贴,共1

【解说向,第二发】红石原理(雾)(范围有点大了额)

只看楼主收藏回复

涉及元件:红石线、红石中继器、红石比较器、活塞、门(乱入)
Topic:延时事件处理【重点活塞】、红石线
一边写一边实验一边发好了可能有点慢

===================……====================

@defanive2 镇楼节选自讨论前后
我来帮你写顺便水水贴看不懂不要怪我,有话在先请做好准备
当然群里的人都看到过了吧→ →这里还有解析


1楼2014-06-27 10:07回复
    2l


    IP属地:福建来自Android客户端2楼2014-06-27 10:08
    回复
      3楼


      来自Android客户端3楼2014-06-27 10:26
      收起回复
        为什么会讨论到这个呢,起因是@正正正正正好 不相信红石系统中非整数tick的存在,如0.5t(1gt),然后我们谈笑风生,我本想用活塞1.5t说的,结果通过大量实验数据,得出活塞延迟竟然不定(雾),最后def结合源码大谈延迟问题→ →
        以下测试均在14w20b进行,红石系统无异,只是为了更好的F3
        首先从我的电路说起

        很简单的电路,活塞伸出到到位不是1.5t么,盯着活塞开拉杆,预想是右、中、左顺序激活,但是结果。。。。
        活塞伸出延迟2t你一定在逗我然后nenn说活塞动画顺序不一定和激活顺序一样→ →再说我的破电脑显卡不好,cpu也不行,且眼睛看着0.05s太费力,于是换了不同声音的音符盒(当然要先关掉其他音效,不然活塞和栏杆声音会干扰)不愧是听音不错的→ →终于。。。听出来了左边两列是同时激活的
        PS:为什么不用命令方块或者两个相对的活塞呢?因为精确度【太高】了,我现在想判断左边两列之间有没有0.5t延迟,但即使是同一gt内激活,命令也能区分出来(表示顺序),过高的精确度无意义,我们研究的是有没有delay,而不是更新的顺序。相对眼睛来说,耳听0.05s还是无压力的,音符盒也是即时触发
        最终的最终,一个活塞确实是2t延迟,难道说1.5t的都是错的么?
        (待续)


        4楼2014-06-27 10:30
        收起回复
          然后本能地串联好几个活塞后,发现部分是1.5t延迟,部分是2t延迟的直接崩溃。
          后来,因为音符盒声音距离的问题,我把导线拉过来,连了个中继器,妈蛋活塞全变成1.5t延迟了好啊原来是电源接入方式的问题

          左边:拉杆/按钮/etc直接接入;红石块推动接入或放置接入;手动破坏切断红石线的方块;放置能被充能的方块——同时发生,也就是活塞2t
          右边:中继器接入;比较器接入;活塞移走切断红石线的方块——右先左后,再串联1t可以证明活塞死1.5t
          最终规律:如果电源接入时正好有活塞/中继器/比较器在工作中,那么活塞延迟1.5t,否则2t。这里强调的是【工作中】,表示进行时,比如:中继器(比较器)已经点亮了,再在前方放置方块使其被充能接入电路,此时活塞延迟2t;红石块被活塞推动,活塞运动完毕,红石块才被接入,此时活塞也是2t。
          def看的代码证明了我的想法:





          麻麻麻麻,mojang为什么要这么写代码啊?——因为mojang sb。
          PS:会不会什么时候当做bug修掉?那无延迟电路可能要出问题哎


          5楼2014-06-27 10:59
          回复
            活塞确实是个神奇的东西→ →本来想讲延迟事件的处理方案的,不过突然不想讲了,先说红石线,这货没有延迟,一下执行到底,下面是def的看法(感觉我一直在搬记录有木有QwQ)



            确实相当麻烦,研究起来也晕晕的,而且没啥大用处,如上,用了也不可靠,没准sb mojang什么时候这里改改那里改改就不能用了→ →


            6楼2014-06-27 11:08
            收起回复
              接下来说下红石线激活效应器的正确接法
              在ITx4里能看到这样的布线
              确实可以全部激活,而且没有BUD(废话),但是我们选取一部分,就会发现

              活塞不能激活=A=“但左边的确实指向活塞了啊,难道是BUD?”当然不是- -其实这个红石线根本没有【指向】活塞“胡说,明明指着QAQ”我们看到的只是渲染效果,红石线是否真正【指向】活塞并非看渲染,仔细看右上角的调试界面(知道我为什么用20b了吧),west:side,也就是西边有相邻,也就是引出,这里的引出可以是红石线、中继器(注意方向)、比较器、拉杆、按钮、火把、探测铁轨等等一堆,而且红石粉可以在相邻的上方或者下方(没有切断的情况下),比如第一张图
              但这里有个特殊情况,就是当红石线附着在非实体方块(上半砖、萤石、红石块)时,红石粉是只能向下连而不能向上连,但信号传输顺序相反,只能上传不能下xia传zai,看右上角连接方式,左边(东east)并没有side,活塞不会伸出
              但是下面就会连上啦,即使红石线没亮(当然不能有切断线的方块),现在是east:side和west:side。小伙伴们应该会发现放上红石的时候活塞会没反应,因为BUD啦,给个更新就是了;w;
              其实这个时候,mc把指针指向的红石线当做提供能量的线了,这个红石线必须能量等级不为0,而不是右下角的红石线不为0(略废话)
              这里的活塞可以换成任何非实体效应器(漏斗、TNT、栅栏门、活板门),下面是一个BUD态的TNT;w;(注意右上角,有亮点,不过不影响结论)
              还有一个重点,不能再垂直于活塞方向的边上有连接,这个时候是不会激活的
              最后总结,一个红石粉需要激活A方向的效应器(这里是不是实体方块无所谓),必须在C方向有引出,且B、D方向没有引出,这样就能激活(或BUD态)啦。是不是BUD要看有没有使效应器受到更新,上个帖子重点就是红石元件的更新

              这部分基本上在上个帖子里都有简单介绍过,这里扩展了一点,更重要的是那个帖子都要成黑历史了→ →


              7楼2014-06-27 11:49
              收起回复
                对于中继器,这样的激活方式很正常

                上面的活塞空气不能被充能,右下的活塞说明中继器不会给附着方块充能,那活塞为什么能激活呢?我们把活塞想象成门,嗯,明白了么?确实,使活塞激活的范围和门一模一样,小伙伴们可以自己试试,当然因为门是非实体方块,有的实验可能做不了,但只要想象一下,下面的电路就没什么问题了

                PS:mojang对门情有独钟还是怎么


                8楼2014-06-27 11:59
                收起回复

                     --来自破烂土豪金手机
                     --欢迎去显卡大队长吧观摩土豪


                  IP属地:日本来自Android客户端9楼2014-06-27 13:04
                  回复
                    技术贴用这种标题简直没逼格→_→


                    IP属地:广西来自Android客户端10楼2014-06-27 15:35
                    收起回复
                      大触大触大触收下我的膝盖


                      IP属地:江苏来自iPhone客户端11楼2014-06-27 22:47
                      回复
                        大触...def才是真神出啊...


                        IP属地:北京12楼2014-07-05 11:04
                        收起回复
                          一直觉得这种红石指向性质很令人愉快233(除了造时序门触发无力的时候)


                          IP属地:江苏13楼2014-11-21 12:32
                          回复