【Minecraft】【元件庫】0t脈沖發(fā)生器(2)

前一期專欄:https://www.bilibili.com/read/cv544167

前言:
? ? ? ? 第1期專欄主要收集了Minecraft中常見且常用的0t脈沖發(fā)生器。而這一期的0t脈沖發(fā)生器主要以理論研究為主,而實用性較低。
? ? ? ? 與前期相同,本文中的0t脈沖發(fā)生器僅適用于PC Minecraft,即java版的Minecraft。本文討論也僅限于PC Minecraft。這一期暫僅討論正脈沖(紅石線熄滅→亮起→熄滅)。本文使用的Minecraft版本:1.12.2。
? ? ? ? 先熟悉紅石更新延遲理論有助于理解本文內(nèi)容。
????????編寫:HD-nuke8800
正文:
在Minecraft的1gt(gametick)中,分別進行了以下的更新順序:
Next Tick Entry(簡寫NTE)
Random Tick(簡寫RT)
Block Event(簡寫B(tài)E)
Entity Update(簡寫EU)
Tile Entity(簡寫TE)
? ? ? ? 而紅石信號可在任一更新順序發(fā)生變化,按照排列組合,將有25種不同的0t信號,本文中將列出25種0t正脈沖發(fā)生器。

關于檢測手段:
Minecraft中紅石線,動力鐵軌,活板門,柵欄門等元件,對紅石信號亮起和熄滅的響應是實時的。
Minecraft中的NTE類元件,如命令方塊,中繼器,發(fā)射器等元件,對紅石信號的亮起是敏感的,它們能響應上升沿。但不是實時。
Minecraft中的BE類元件,如活塞,對在BE階段更新的紅石信號實時響應。
?
本文中將使用以下檢測元件:

1、命令方塊,里面指令為:/say oh
2、中繼器
3、鐵活板門&木柵欄門。當檢測到0t脈沖時,會發(fā)出極其短暫的“跨拉”的聲音
4、活塞
5、必要時會增加另一個命令方塊,設置為循環(huán),里面指令為:/time query gametime
?
? ? ? ? 和前一期一樣,紅色羊毛代表輸入端,綠色羊毛(或粘土)代表輸出端。

以下為0t發(fā)生器:
(1)NTE--NTE

觸發(fā)方式:上升沿
中繼器對著的命令方塊指令為:/setblock 47 101 -30 redstone_block
比較器對著的命令方塊指令為:/setblock 47 101 -30 air
PS:命令方塊產(chǎn)生的更新在NTE。

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無動作
紅石線:無閃爍
紅石信號波形圖如下:

(2)NTE--RT

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器能否發(fā)出0t脈沖含有運氣成分,且使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)
PS:火燒掉可燃方塊產(chǎn)生的更新在RT。

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無動作
紅石線:無閃爍
紅石信號波形圖如下:

(3)NTE--BE

觸發(fā)方式:上升沿
PS:活塞推拉方塊產(chǎn)生的更新在BE。

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:0gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(4)NTE--EU

觸發(fā)方式:上升沿
PS:TNT爆炸炸掉方塊產(chǎn)生更新在EU。

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:1gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(5)NTE--TE

觸發(fā)方式:上升沿
PS:活塞正常推拉方塊造成的壓線更新在TE。

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:1gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(6)RT--NTE

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
命令方塊(上圖中靠右)中指令:/setblock 46 101 -11 air
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:1gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(7)RT--RT

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器能否發(fā)出0t脈沖含有運氣成分,且使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(8)RT--BE

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:0gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(9)RT--EU

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:1gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(10)RT--TE

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:1gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(11)BE--NTE

觸發(fā)方式:上升沿
命令方塊中指令(黃色羊毛旁):/setblock 46 101 10 air
該發(fā)生器使用次數(shù)為一次性

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:1gt瞬推
紅石線:無閃爍
紅石信號波形圖如下:

(12)BE--RT

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:1gt瞬推
紅石線:無閃爍
紅石信號波形圖如下:

(13)BE--BE

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:0gt瞬推
紅石線:無閃爍
紅石信號波形圖如下:

(14)BE--EU

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:1gt瞬推
紅石線:無閃爍
紅石信號波形圖如下:

(15)BE--TE

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:1gt瞬推
紅石線:無閃爍
紅石信號波形圖如下:

(16)EU--NTE

觸發(fā)方式:上升沿
命令方塊中指令(黃色羊毛旁):/setblock 47 101 30 air
該發(fā)生器使用次數(shù)為一次性

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(17)EU--RT

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作渲染
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(18)EU--BE

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:0gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(19)EU--EU

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(20)EU--TE

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(21)TE--NTE

觸發(fā)方式:上升沿
命令方塊中指令(黃色羊毛旁):/setblock 45 101 50 air
該發(fā)生器使用次數(shù)為一次性

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(22)TE--RT

觸發(fā)方式:上升沿
發(fā)射器里的物品:打火石
該發(fā)生器使用次數(shù)為一次性
使用前,先輸入指令以增大輸出0t脈沖的成功率:/gamerule randomTickSpeed 6000。(Minecraft默認設置數(shù)值為 3)

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:

(23)TE--BE

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:0gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(24)TE--EU

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,有開閉動作顯示
活塞:1gt瞬推
紅石線:閃爍
紅石信號波形圖如下:

(25)TE--TE

觸發(fā)方式:上升沿

檢測元件響應行為:
命令方塊:(見上圖)
中繼器:1t閃爍
活板門、柵欄門:發(fā)出“跨拉”聲,無開閉動作顯示
活塞:無響應
紅石線:無閃爍
紅石信號波形圖如下:


統(tǒng)計分析:
關于活塞:
? ? ? ? 先來分析大家最為關心的活塞,下表中列出了25種發(fā)生器,活塞對應的行為。圖示中,綠色代表活塞產(chǎn)生了0gt瞬推行為,黃色代表活塞產(chǎn)生1gt瞬推行為,紅色代表活塞無響應。

或者,換個排列方式觀察一下?

經(jīng)過觀察可以發(fā)現(xiàn)以下規(guī)律:
1、只有下降沿發(fā)生在Block Event,活塞才能產(chǎn)生0gt瞬推!
2、只要0t信號在經(jīng)過Block Event時保持亮起(高電平),過了Block Event才熄滅(低電平),活塞動作都是1gt瞬推!
3、只要0t信號沒有經(jīng)過Block Event(BE期間是低電平),活塞都無響應!
?
關于中繼器和命令方塊:
? ? ? ? 中繼器和命令方塊只要收到上升沿肯定會有反應的。問題是某些0t發(fā)生器中我放了設置循環(huán),內(nèi)部指令為“/time query gametime”的命令方塊,報了兩次gametime。
? ? ? ? 觀察發(fā)現(xiàn),報了兩次gametime的0t發(fā)生器,0t信號都跨過了gt分界線。(TE和NTE之間)
PS:問題來了,這還能叫0t么?我打算在另一篇專欄中再次討論這個問題,暫且把這個問題擱下。
?
關于紅石線,活板門、柵欄門:
? ? ? ? 細心觀察可以發(fā)現(xiàn),紅石線有時候會閃爍,活板門和柵欄門有時候會有開閉顯示,有什么規(guī)律呢?圖示中,綠色代表紅石線,活板門、柵欄門無閃爍、開閉顯示。黃色代表紅石線,活板門、柵欄門有閃爍、開閉顯示。

或者,換個排列方式觀察下?

觀察可以發(fā)現(xiàn)以下規(guī)律:
? ? ? ? 只要0t信號在高電平期間經(jīng)過了RT和BE的分界線,紅石線,活板門、柵欄門就會產(chǎn)生閃爍,開閉顯示現(xiàn)象。
?
關于“0t信號長度”:
? ? ? ? 在第1期中我提到了“0t信號長度”的定義,注意的是,這個概念只適用于能讓活塞產(chǎn)生0gt瞬推的0t信號。留意第1期中的發(fā)生器,它們都屬于“NTE--BE”,“BE--BE”,“TE--BE”這三類0t發(fā)生器,這三類0t發(fā)生器的0t信號下降沿都在BE。可以說,“0t信號長度”只能用來衡量“NTE--BE”、“RT--BE”、“BE--BE”、“EU--BE”、“TE--BE”這五種0t發(fā)生器發(fā)出的0t信號能激活活塞的個數(shù)。其它20類0t發(fā)生器發(fā)出的0t,活塞要么不響應,要么1gt瞬推。所以“0t信號長度”在另外20類0t發(fā)生器產(chǎn)生的0t信號中不可用!
PS:讓活塞產(chǎn)生1gt瞬推的0t信號,它們能激活bud位活塞個數(shù)理論上是∞個。
?
最后,就是大匯總了:


后記:
? ? ? ? 第2期的0t脈沖發(fā)生器也到此寫完了??赐旰?,相信很多人已經(jīng)發(fā)現(xiàn)了新的問題了。細心的觀眾會發(fā)現(xiàn),我這次并沒有使用第1期中出現(xiàn)的“0t脈沖,本質(zhì)是在同1gt(gametick)內(nèi)亮起并熄滅的紅石信號。”這句話。很明顯,這篇文章中提到的25類0t發(fā)生器中,有10類0t發(fā)生器和這句話是相悖的。而第1期中有幾個屬于“TE--BE”類型的0t發(fā)生器也是和這句話相矛盾的。目前這個問題尚未解決。這里我只能拋磚引玉了。
(′?_?`)
? ? ? ? 若發(fā)現(xiàn)本文中出現(xiàn)差錯,歡迎在評論區(qū)給出。也歡迎在評論區(qū)發(fā)表自己的看法和意見。qwq