第九十二章 簡單的紅石脈沖
(此章節(jié)原為『紅石比較器』,于2022年7月27日改為『簡單的紅石脈沖』)
(此章節(jié)有用到本章說來插入圖片,因此最好在起點中文網上閱讀本章)
在Java1.9版本中,Mojang才為命令方塊加入了『連鎖』和『重復』這兩個模式。因此在Java1.9版本之前,命令方塊只有『脈沖』這一種模式,也就是說命令方塊在當時得依靠紅石電路才能實現重復和連鎖執(zhí)行。雖然現在已經有了『重復』和『連鎖』,但我們仍然應該要了解一下這個在Java1.9版本前被廣泛用于命令方塊執(zhí)行的東西:
紅石脈沖(Redstone Pulse),俗稱紅石循環(huán)。
首先,讓我們了解一下:什么是脈沖?
脈沖(Pulse),又稱脈波、脈沖波(Pulse Wave),指的是『一信號幅度的快速暫態(tài)變化,由基準值變?yōu)檩^高或較低的值,之后又快速的回到基準值』,用人話來說,就是一個東西,由一個形態(tài)快速變化成為了另一種形態(tài),然后又快速回到了原本的形態(tài)。脈沖是有規(guī)律的,比如每1秒改變一個來回,或每0.05秒改變一次。在Minecraft中,紅石脈沖,也就是我們俗稱的紅石循環(huán),就是指在短時間內,一段紅石電路的信號快速地從無到有,再從有到無的過程。
紅石脈沖有很多種類型,但最常見的無非也就這四種脈沖形式:
?、倨胀}沖(紅石中繼器脈沖)(插圖92-1)
②單刻比較器減法脈沖(插圖92-2)
③延遲減法脈沖(插圖92-3)
?、芗t石火把脈沖(插圖92-4)
這四個脈沖各有各的優(yōu)勢,具體可以看下表:
脈沖名|速度|資源消耗|穩(wěn)定度|簡單程度
普通|+|++|+|+
單刻比較器減法|+|+|-|+
延遲減法|-|+|++|-
紅石火把|+|+|--|++
如果你要速度快,就采用『紅石火把脈沖』或『單刻比較器減法脈沖』,如果你要穩(wěn)定度好,就采用『延遲減法脈沖』,如果你要卡服,就采用......額,估計你不想你的服務器變得很卡吧?
說了這么多,那么這四個脈沖的速度究竟如何?
我們可以通過命令方塊將三者在一定時間內的執(zhí)行次數轉化為分數,來與實際經過的游戲刻數進行對比。我們可以創(chuàng)建一個叫做timer的計分項,把分數放在上面之后將timer顯示出來,接著讓計算脈沖次數的和游戲刻消耗刻數的命令方法同時被激活,就像插圖92-5一樣。
然后我們就可以得到普通脈沖的執(zhí)行數據:
游戲刻(gametick)——803
次數(times)——202
執(zhí)行一次消耗游戲刻數(gametick/times)——3.975≈4
每秒執(zhí)行次數(s/gametick·times)——5.031≈5
我們同樣可以使用此方法,來測出另外兩個的速度:
--單刻比較器減法脈沖(插圖92-6)
游戲刻(gametick)——809
次數(times)——203
執(zhí)行一次消耗游戲刻數(gametick/times)——3.985≈4
每秒執(zhí)行次數(s/gametick·times)——5.018≈5
--延遲減法脈沖(插圖92-7)
游戲刻(gametick)——800
次數(times)——100
執(zhí)行一次消耗游戲刻數(gametick/times)——8
每秒執(zhí)行次數(s/gametick·times)——2.5
--紅石火把脈沖(插圖92-8)
游戲刻(gametick)——804
次數(times)——202
執(zhí)行一次消耗游戲刻數(gametick/times)——3.980≈4
每秒執(zhí)行次數(s/gametick·times)——5.025≈5
可見,這四個脈沖中三個的速度是每秒5次,唯一一個較慢的是每秒2.5次,這與『重復』命令方塊每秒執(zhí)行20次的速度相差甚遠。但鑒于紅石電路確實比較慢,所以這樣的速度還能夠理解。
但別忘了,本書是一個指令教程,所以我們用紅石脈沖的目的并不是要弄紅石電路,而是要讓『脈沖』命令方塊也能夠實現重復執(zhí)行的效果。而對于重復執(zhí)行的命令方塊來說,一個非常重要的特性就是:要容易控制
『重復』命令方塊在『需要紅石』的模式下,可以通過setblock或fill指令填充紅石塊或空氣來實現控制的效果——這是一個十分流行且方便的控制方法,特別是在一些地圖中,你應該也見過這種方法。而對于紅石脈沖來講,能不能用同樣或類似的方法進行控制,就是一個非常重要的評判標準。
在上面的四種脈沖中,『普通脈沖』最不容易被控制(你可以研究一下怎么控制這東西),而剩下的三個都能夠很好的被指令控制,其中紅石火把的控制方式較為特殊——你需要放置的是紅石粉而不是紅石塊(插圖92-9)。
這就是本章的全部內容。