首頁 游戲

Minecraft指令手冊

第九十一章 紅石比較器

Minecraft指令手冊 你好MC 2664 2020-03-19 12:56:12

 ?。ù苏鹿?jié)原為『循環(huán)裝置-牛頓的棺材板快要按不住了啊?。?!』,于2022年7月26日改為『紅石比較器』)

 ?。ù苏鹿?jié)有用到本章說來插入圖片,因此最好在起點中文網(wǎng)上閱讀本章)

  現(xiàn)在我們已經(jīng)了解了很多指令,但是僅僅知道各種指令如何使用,最多也就稱得上是一個『會用指令的玩家』而已。那該怎么辦呢?我們現(xiàn)在要做的是,將各個指令和游戲特性互相聯(lián)系起來,這也就是這一卷的主要內(nèi)容。

  紅石比較器(Redstone Comparator),你應(yīng)該知道這是個什么東西吧?作為紅石電路的重要組成部分之一,它有許許多多的的用途。

  作者的紅石并不怎么好,所以這邊并不會講什么特別高深的紅石相關(guān)內(nèi)容(我也不會講)。但基礎(chǔ)的一些特性我們還是要了解了解。

  讓我們拿出一個紅石比較器,放在地上,你應(yīng)該注意到了這東西上面插著三個看起來像是紅石火把的東西(其實就是紅石火把),并組成了一個三角形(△)。這個三角形的一邊平行于紅石比較器的一側(cè),另一頭指向另一側(cè)(見插圖91-1)。

  這個三角形意味著什么呢?讓我們換一個方式來看待紅石比較器:

  ┏━┓北

  ┃△┃↑(插圖:91-2)

  ┗━┛

 ?。ㄩL方形的紅石比較器?)

 ?。~,就這樣子將就看吧,能夠看配圖的話那更好)

  這是一個朝向正北(Z-)的紅石比較器,這個紅石比較器有三個輸入口和一個輸出口:

  ┏O┓

  B△C(插圖:91-3)

  ┗A┛

  A······后側(cè)輸入口

  B······左側(cè)輸入口

  C······右側(cè)輸入口

  O······輸出口

  其中,A后側(cè)輸入口是很重要的一個輸入口,你可以向這個輸入口輸入紅石信號。當(dāng)然,單純的輸入紅石信號并不會發(fā)生什么事情,因為我們沒有在O輸出口放置一些能夠接收紅石信號的東西。讓我們在A側(cè)放置一個紅石塊,O側(cè)放置一個紅石粉看看:

  亮起來的紅石粉

  ┏O┓

  B△C(插圖:91-4)

  ┗A┛

  紅石塊

  你會發(fā)現(xiàn)O側(cè)的紅石粉亮起來了。這是為什么?

  因為紅石比較器在A側(cè)收到了紅石塊產(chǎn)生的紅石信號,于是就從O側(cè)輸出來了。那么問題來了:我們都知道紅石信號有強度等級之分,在普通的紅石線中傳遞的紅石信號每過一格就會衰減一級,直到完全沒有信號。那么紅石信號在穿過紅石比較器的過程中會發(fā)生衰減嗎?

  由于紅石塊能夠產(chǎn)生出15級的紅石信號,因此我們只需要測試O側(cè)輸出的紅石信號是否為15級即可。我們當(dāng)然可以通過延長O側(cè)的紅石線路,觀察紅石信號是否傳遞了15格。但別忘了本書是一個指令教程,因此我們干脆直接用指令對O側(cè)的紅石粉進行方塊狀態(tài)測試:

  /execute if block ~~~ minecraft:redstone_wire[power=15]——Java1.13及之后版本

  /testforblock ~~~ minecraft:redstone_wire [power=15]——Java1.12.2-1.11

  /testforblock ~~~ minecraft:redstone_wire [“redstone_signal“:15]——基巖版

  雖然方塊狀態(tài)我們并沒有了解過,但也快了,這邊先預(yù)習(xí)一下也無妨。上面的指令的作用是:探測指令執(zhí)行地點(也就是你的位置)的方塊是否是紅石線,且power(redstone_signal)方塊狀態(tài)的值為15。其中,power(redstone_signal)方塊狀態(tài)的作用就是儲存該紅石粉的紅石信號強度等級。

  站在O側(cè)的紅石粉上,根據(jù)你的版本選擇性運行上面的指令。如果指令運行成功,那么就代表著這個紅石粉具有15級的紅石信號,也就驗證了我們上述的猜想。那么實際情況怎么樣呢?

  指令確實運行成功了。

  這意味著什么呢?這意味著,紅石比較器不會導(dǎo)致紅石信號的衰減。但隨之而來就有另一個問題——紅石比較器會像紅石中繼器一樣增強信號嗎?

  讓我們再測試一下,將上面的結(jié)構(gòu)改成下面這樣:

  ┊——究竟是14級還是15級?

  ┏O┓

  B△C(插圖:91-5)

  ┗A┛

  ┊——14級紅石信號

  ┊——15級紅石信號

  ?

  圖例

  ┊······紅石線

  ?······紅石塊

  然后還是老樣子,對O側(cè)的紅石線進行方塊狀態(tài)測試,只需要把『15』改成『14』就行。那么結(jié)果如何呢?

  指令也是成功運行!

  如果你不放心,你還可以重新測試一下『15』的值,然后你就會發(fā)現(xiàn)指令執(zhí)行失敗。

  所以說,總結(jié)下來,紅石比較器并不會導(dǎo)致紅石信號衰減,也不會增強紅石信號。借此原理,紅石比較器的第一個重要用途就出來了:

  保持信號強度(插圖:91-6)

  我們上面的討論都僅僅基于A后側(cè)輸入口和O輸出口,但紅石比較器還有兩個輸入口:B左側(cè)輸入口和C右側(cè)輸入口。這兩個輸入口有什么用呢?

  說到這兩個輸入口,就不得不提——紅石比較器的模式。

  紅石比較器具有兩種模式,可以通過觀察靠近O輸出口的那個紅石火把的開關(guān)狀態(tài)來判斷此時比較器處于哪種模式:

  比較模式——O輸出口的紅石火把關(guān)閉

  作差模式——O輸出口的紅石火把開啟

  先來講講比較模式。當(dāng)紅石比較器處于比較模式時,B或C輸入口輸入的紅石信號強度會和A輸入口的紅石信號強度作比較,如果B或C>A則O不輸出,B或C≤A則O輸出,也就是像下面這樣子:

  ┊——0級

  ┏O┓(插圖:91-7)

  B△C?

  ┗A┛

  ┊——14級

  ┊——15級

  ?

  ∵C=15,A=14

  ∴C>A

  ∴O=0(不輸出)

  ——————————

  ┊——14級

  ┏O┓(插圖:91-8)

  B△C┈┈┈?(這里有3格的紅石線)

  ┗A┛

  ┊——14級

  ┊——15級

  ?

  ∵C=13,A=14

  ∴C<A

  ∴O=14(輸出)

  懂了吧?需要注意的是,如果B和C都有輸入,那么游戲會先比較B和C,拿強度最大的和A比較:

  空空┊——15級

  空空┏O┓(插圖:91-9)

  ?┈┈B△C┈┈┈?

  空空┗A┛

  空空┊——15級

  空空?

  ∵B=14,C=13

  ∴B>C

  ∵A=15

  ∴B<A

  ∴O=15(輸出)

  紅石比較器的這個比較模式就是這樣,同時這可以引出比較器第二個重要用途:

  比較信號強度

  當(dāng)紅石比較器靠近O輸出口的紅石火把開啟時,紅石比較器就進入了『作差模式』。作差模式的紅石比較器會將A輸入口的紅石信號強度和B或C的紅石信號強度相減,并將相減后的紅石信號強度從O側(cè)輸出:

  空空┊——1級

  空空┏O┓(插圖:91-10)

  ?┈┈B△C┈┈┈?

  空空┗A┛

  空空┊——15級

  空空?

  ∵B=14,C=13

  ∴B>C

  ∵A=15

  ∴O=A-B=15-14=1(輸出)

  不難發(fā)現(xiàn),不管是在哪個模式,紅石比較器都會先比較B和C輸入口的信號強度,將最大的信號強度抽出來之后再操作A輸入口的信號強度。

  這個『作差模式』也就是這樣,同時這也引出比較器第三個重要用途:

  信號強度作差

  那么比較器就這么講完了嗎?

  No,因為紅石比較器還有第四個重要用途:

  檢測方塊狀態(tài)、方塊實體和物品展示框

  我們知道,紅石比較器可以檢測命令方塊上一次的執(zhí)行成功次數(shù),然后將次數(shù)轉(zhuǎn)化為紅石信號強度進行輸出。還可以檢測許多容器,以及各種東西,然后輸出特定的紅石信號。對于隔壁紅石來說,紅石比較器常常用來檢測容器內(nèi)物品數(shù)量,甚至是通過不可堆疊和可堆疊的物品不斷在漏斗內(nèi)運動,然后使用紅石比較器檢測,來達到『隨機數(shù)運算』的目的。只不過我們這邊不需要用到這么復(fù)雜的東西(其實那也沒多復(fù)雜),我們只需要能夠用紅石比較器檢測命令方塊的成功次數(shù)就行了:

  ┊——13級

  ┏O┓(插圖:91-11)

  B△C

  ┗A┛

  ?

  圖例

  ?······命令方塊,上次成功運行次數(shù)為13次

  上面是一個簡易的例子——一個上次運行指令成功次數(shù)為13次的命令方塊,通過比較器成功將成功次數(shù)轉(zhuǎn)化為信號強度。

  所以這就是本章的全部內(nèi)容了。

  附錄:紅石比較器歷史

  Java

  1.5——加入了紅石比較器

  1.6——能檢測末地傳送門框架和煉藥鍋了

  1.8——能檢測物品展示框和蛋糕了

  1.9——比較器現(xiàn)在能夠輸入紅石塊的紅石信號

  1.14——能檢測講臺和堆肥桶

  1.15——能檢測蜂巢和蜂箱

  1.16——能檢測重生錨

  1.17——能檢測幽匿感測體

  攜帶/基巖版

  Alpha0.14.0——加入了紅石比較器

  1.0.0——可檢測末地傳送門框架

  1.0.5——可檢測命令方塊

  1.1.0——可檢測潛影貝

  1.2.0——可檢測唱片機

  1.11.0——可檢測煙熏爐、高爐、講臺和堆肥桶

  ......

  ......

  ......

  ......

  我們知道,紅石信號等級上限為15,所以當(dāng)命令方塊的執(zhí)行成功次數(shù)等于甚至大于15時,紅石比較器就沒作用了。

  真的嗎?

  讓我們來看一個例子:

  ┊——6級

  ┏O┓(插圖:91-12)

  B△C?

  ┗A┛

  ?

  圖例

  ?······命令方塊,上次執(zhí)行成功次數(shù)為21次

  ?······紅石塊

  這是一個處于『作差模式』的紅石比較器,不難發(fā)現(xiàn)它的O=6,C=15。所以它的A為多少呢?

  A=O+C=21,也就是命令方塊執(zhí)行成功的次數(shù)

  等等,不是說好紅石信號等級上限為15的嗎?怎么跑21去了?

  嚴(yán)格來說,并不是說紅石信號等級上限為15,而是『紅石線的承載能力最大為15級』。所以如果我們不使用紅石線,也就不會把命令方塊的輸出壓到15級。

  但是不使用紅石線我們該怎樣傳導(dǎo)大于15級的紅石信號呢?

  用紅石比較器。

  由于篇幅限制,我們這邊就不詳細展開,接下來就請你自行研究去吧!

按 “鍵盤左鍵←” 返回上一章  按 “鍵盤右鍵→” 進入下一章  按 “空格鍵” 向下滾動
目錄
目錄
設(shè)置
設(shè)置
書架
加入書架
書頁
返回書頁
指南