欢迎光临散文网 会员登陆 & 注册

【Minecraft】一种简便的分析红石电路延迟方法

2018-07-30 21:54 作者:HD-nuke8800  | 我要投稿

       最近搞红石电路时遇到一些延迟分析问题,计算延迟时总是混乱一些元件的延迟。后来,我发现用一种方法分析红石电路的延迟是比较方便而且准确的,我用它成功地分析了一些比较容易引起混乱的红石电路。收益良多,下文我就分享一下这种方法。


前言:

1.本文讨论范围为java版的Minecraft。

2.方法在1.8--1.12.2是适用的,1.5--1.7.10也可以作为参考,至于1.5以下,或者以后更新的版本,我没验证过,不敢肯定能否用于这些版本。

3.阅读本文前,推荐先去看看以下视频或者文章,这对后文理解有益,

(1)https://www.bilibili.com/video/av2537345

PS:该视频理论有一些小错误,不过还是建议看看

(2)https://www.bilibili.com/video/av2547012

(3)百度贴吧(自行补充) /p/ 4078230299

PS:你们看不懂1、2就去看3吧,3可以说是GP大触对1、2的总结

废话:

        如果你看了上面这些已经完全头晕眼花什么都不懂的话,我建议你也别读我这篇文章了,学习红石去,几天后或者几个月后再回来看吧。

        如果你能勉强理解的话,看不看你自己定咯。

(〜 ̄△ ̄)〜

PS:之前让某人去看GP大触的论文,他就圈着“理论适合所有的1.8.x版本,因1.9中活塞代码进行了修改,部分内容可能不再适用。这句话发给我,不予评价!


正文:

1.准备一个Excel或者WPS表格,并且按照图中制作表格。(你手画也行)

分析表格

2.在MC中搭出要分析的电路,截图。(尽可能截到所有的红石元件)

3.编辑截图,在各个需要分析的元件上标注“1”、“2”、“3”或“A”、“B”、“C”等,不易混淆即可。

4.把截图插入表格中,以便后面分析。

5.开始分析

6.分析完成,总结得出结论

如何分析:

1.分析的前提是你已经熟悉了各个元件的延时,元件属于NTE还是BE等,所标注的中继器档位是多少等,如果连这个都搞错的话,那么分析出来的也是错误的。

2.表格中,我用加粗的黑线隔开每个gametick,你可以理解成1条黑线延迟1gt,也可以说1条黑线延时0.05s

3.从某个事件触发开始分析(玩家拉拉杆、某个中继器亮起、活塞开始推出等),过后发生什么连锁反应,就记进“事件”中,简短表达即可。(你自己看得懂就行)

4.如果事件都发生在同一个更新顺序时(表格中同一行),则按照顺序从左到右写,注意,这个很重要,排错序也有可能导致后面的分析出错。

5.NTE类元件(中继器、投掷器)等,当其在某一gt受到激活且有更新时(比如中继器后端收到红石信号),就在那一gt加入NTE表中。

6.BE类元件(活塞,音符盒),当其在某一gt受到激活且有更新时(活塞激活),如果信号是来自BE或者之前的,马上进入本gt的BE表并工作,如果收到来自BE之后的信号,则跳到下1gt的BE中工作。(跨过1条黑线)

7.活塞工作时间是2gt的!(正常推出收回),当活塞推方块或者拉方块时,方块到位是活塞开始工作2gt后的TE上!


例子分析:

来看看实际分析过程

(・∀・)

例1:


例1

        MC中测试,拉下红色羊毛上的拉杆,两个活塞是同时伸出;拉下绿色羊毛上的拉杆,B活塞先推,C活塞后推,间隔1gt。

分析过程↓↓

例1(激活红色羊毛上的拉杆)
例1(激活绿色羊毛上的拉杆)

例2:

        MC中测试,当拉下红色羊毛上的拉杆,两个投掷器先后投掷(可以通过听声音,在其中一个投掷器里塞入东西,可以辨别哪个投掷器先投掷)(考验听力233);拉下绿色羊毛上的拉杆,两个投掷器同时投掷。

例2

分析过程↓↓

例2(激活红色羊毛上的拉杆)
例2(激活绿色羊毛上的拉杆)

例3:

      在MC中测试,当拉下红色羊毛上的拉杆,两个活塞同时伸出,两个投掷器先后投掷;拉下绿色羊毛上的拉杆,C活塞先于D活塞早1gt伸出,两个投掷器同时投掷。

例3

分析过程↓↓

例3(激活红色羊毛上的拉杆)
例3(激活绿色羊毛上的拉杆)

例4:

例4

        Jim当时做电路时问我,为什么两个活塞是同时收回,而不是右路比左路晚1gt收回,我给他分析了下。

分析过程↓↓

例4分析

        关键在于,Jim认为A活塞收回延时3gt,然而其实是收回2gt,在方块压线时,中继器就在那一gt就进入NTE表中。然而如果方块压线后接的是活塞,活塞是跳到下一gt才会动作的,所以表现为延时3gt。

例5:

        先讲个笑话,瓜君和我做树场时,他用老仙的0t发生器,并且用命令方块测时间,结果测到两次0t脉冲间隔2gt(正常来说是3gt),瞬间颠覆瓜君的红石观2333,过后,他才发现是命令方块搞的鬼,因为命令方块是属于NTE元件的,下表中我就分析了一下,命令方块是如何搞鬼的。

(・∀・)

分析过程↓↓

例5

        第3gt时,“F的红石块复位”,就已经让命令方块进入NTE,然后G活塞等都是跳到下1gt才响应的,然后命令方块也在那个时候报时,刚好两个报时间隔了两条横线,所以在MC中测出是延时2gt,然而观察活塞们的工作,它们都是隔了3条横线的(3gt)。


        本文就讲述到此,感谢各位的阅读,也感谢前言中的那些研究MC机制的老外,搬运的UP,读源代码的GP大触,以及各位dalao的帮助,让我写出这篇文章。本文也许有些瑕疵或者有误之处,欢迎指出修正。

(=・ω・=)



【Minecraft】一种简便的分析红石电路延迟方法的评论 (共 条)

分享到微博请遵守国家法律