【Minecraft】一種簡便的分析紅石電路延遲方法

最近搞紅石電路時遇到一些延遲分析問題,計算延遲時總是混亂一些元件的延遲。后來,我發(fā)現(xiàn)用一種方法分析紅石電路的延遲是比較方便而且準(zhǔn)確的,我用它成功地分析了一些比較容易引起混亂的紅石電路。收益良多,下文我就分享一下這種方法。
前言:
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的總結(jié)
廢話:
如果你看了上面這些已經(jīng)完全頭暈眼花什么都不懂的話,我建議你也別讀我這篇文章了,學(xué)習(xí)紅石去,幾天后或者幾個月后再回來看吧。
如果你能勉強理解的話,看不看你自己定咯。
(? ̄△ ̄)?
PS:之前讓某人去看GP大觸的論文,他就圈著“理論適合所有的1.8.x版本,因1.9中活塞代碼進行了修改,部分內(nèi)容可能不再適用。”這句話發(fā)給我,不予評價!

正文:
1.準(zhǔn)備一個Excel或者WPS表格,并且按照圖中制作表格。(你手畫也行)

2.在MC中搭出要分析的電路,截圖。(盡可能截到所有的紅石元件)
3.編輯截圖,在各個需要分析的元件上標(biāo)注“1”、“2”、“3”或“A”、“B”、“C”等,不易混淆即可。
4.把截圖插入表格中,以便后面分析。
5.開始分析
6.分析完成,總結(jié)得出結(jié)論

如何分析:
1.分析的前提是你已經(jīng)熟悉了各個元件的延時,元件屬于NTE還是BE等,所標(biāo)注的中繼器檔位是多少等,如果連這個都搞錯的話,那么分析出來的也是錯誤的。
2.表格中,我用加粗的黑線隔開每個gametick,你可以理解成1條黑線延遲1gt,也可以說1條黑線延時0.05s
3.從某個事件觸發(fā)開始分析(玩家拉拉桿、某個中繼器亮起、活塞開始推出等),過后發(fā)生什么連鎖反應(yīng),就記進“事件”中,簡短表達即可。(你自己看得懂就行)
4.如果事件都發(fā)生在同一個更新順序時(表格中同一行),則按照順序從左到右寫,注意,這個很重要,排錯序也有可能導(dǎo)致后面的分析出錯。
5.NTE類元件(中繼器、投擲器)等,當(dāng)其在某一gt受到激活且有更新時(比如中繼器后端收到紅石信號),就在那一gt加入NTE表中。
6.BE類元件(活塞,音符盒),當(dāng)其在某一gt受到激活且有更新時(活塞激活),如果信號是來自BE或者之前的,馬上進入本gt的BE表并工作,如果收到來自BE之后的信號,則跳到下1gt的BE中工作。(跨過1條黑線)
7.活塞工作時間是2gt的?。ㄕM瞥鍪栈兀?/span>,當(dāng)活塞推方塊或者拉方塊時,方塊到位是活塞開始工作2gt后的TE上!

例子分析:
來看看實際分析過程
(???)
例1:

MC中測試,拉下紅色羊毛上的拉桿,兩個活塞是同時伸出;拉下綠色羊毛上的拉桿,B活塞先推,C活塞后推,間隔1gt。
分析過程↓↓



例2:
MC中測試,當(dāng)拉下紅色羊毛上的拉桿,兩個投擲器先后投擲(可以通過聽聲音,在其中一個投擲器里塞入東西,可以辨別哪個投擲器先投擲)(考驗聽力233);拉下綠色羊毛上的拉桿,兩個投擲器同時投擲。

分析過程↓↓



例3:
在MC中測試,當(dāng)拉下紅色羊毛上的拉桿,兩個活塞同時伸出,兩個投擲器先后投擲;拉下綠色羊毛上的拉桿,C活塞先于D活塞早1gt伸出,兩個投擲器同時投擲。

分析過程↓↓



例4:

Jim當(dāng)時做電路時問我,為什么兩個活塞是同時收回,而不是右路比左路晚1gt收回,我給他分析了下。
分析過程↓↓

關(guān)鍵在于,Jim認為A活塞收回延時3gt,然而其實是收回2gt,在方塊壓線時,中繼器就在那一gt就進入NTE表中。然而如果方塊壓線后接的是活塞,活塞是跳到下一gt才會動作的,所以表現(xiàn)為延時3gt。

例5:
先講個笑話,瓜君和我做樹場時,他用老仙的0t發(fā)生器,并且用命令方塊測時間,結(jié)果測到兩次0t脈沖間隔2gt(正常來說是3gt),瞬間顛覆瓜君的紅石觀2333,過后,他才發(fā)現(xiàn)是命令方塊搞的鬼,因為命令方塊是屬于NTE元件的,下表中我就分析了一下,命令方塊是如何搞鬼的。
(???)
分析過程↓↓

第3gt時,“F的紅石塊復(fù)位”,就已經(jīng)讓命令方塊進入NTE,然后G活塞等都是跳到下1gt才響應(yīng)的,然后命令方塊也在那個時候報時,剛好兩個報時間隔了兩條橫線,所以在MC中測出是延時2gt,然而觀察活塞們的工作,它們都是隔了3條橫線的(3gt)。

本文就講述到此,感謝各位的閱讀,也感謝前言中的那些研究MC機制的老外,搬運的UP,讀源代碼的GP大觸,以及各位dalao的幫助,讓我寫出這篇文章。本文也許有些瑕疵或者有誤之處,歡迎指出修正。
(=?ω?=)