(此章节原为『循环装置-牛顿的棺材板快要按不住了啊!!!』,于2022年7月26日改为『红石比较器』)
(此章节有用到本章说来插入图片,因此最好在起点中文网上阅读本章)
现在我们已经了解了很多指令,但是仅仅知道各种指令如何使用,最多也就称得上是一个『会用指令的玩家』而已。那该怎么办呢?我们现在要做的是,将各个指令和游戏特性互相联系起来,这也就是这一卷的主要内容。
红石比较器(Redstone Comparator),你应该知道这是个什么东西吧?作为红石电路的重要组成部分之一,它有许许多多的的用途。
作者的红石并不怎么好,所以这边并不会讲什么特别高深的红石相关内容(我也不会讲)。但基础的一些特性我们还是要了解了解。
让我们拿出一个红石比较器,放在地上,你应该注意到了这东西上面插着三个看起来像是红石火把的东西(其实就是红石火把),并组成了一个三角形(△)。这个三角形的一边平行于红石比较器的一侧,另一头指向另一侧(见插图91-1)。
这个三角形意味着什么呢?让我们换一个方式来看待红石比较器:
┏━┓北
┃△┃↑(插图:91-2)
┗━┛
(长方形的红石比较器?)
(额,就这样子将就看吧,能够看配图的话那更好)
这是一个朝向正北(Z-)的红石比较器,这个红石比较器有三个输入口和一个输出口:
┏O┓
B△C(插图:91-3)
┗A┛
A······后侧输入口
B······左侧输入口
C······右侧输入口
O······输出口
其中,A后侧输入口是很重要的一个输入口,你可以向这个输入口输入红石信号。当然,单纯的输入红石信号并不会发生什么事情,因为我们没有在O输出口放置一些能够接收红石信号的东西。让我们在A侧放置一个红石块,O侧放置一个红石粉看看:
亮起来的红石粉
┏O┓
B△C(插图:91-4)
┗A┛
红石块
你会发现O侧的红石粉亮起来了。这是为什么?
因为红石比较器在A侧收到了红石块产生的红石信号,于是就从O侧输出来了。那么问题来了:我们都知道红石信号有强度等级之分,在普通的红石线中传递的红石信号每过一格就会衰减一级,直到完全没有信号。那么红石信号在穿过红石比较器的过程中会发生衰减吗?
由于红石块能够产生出15级的红石信号,因此我们只需要测试O侧输出的红石信号是否为15级即可。我们当然可以通过延长O侧的红石线路,观察红石信号是否传递了15格。但别忘了本书是一个指令教程,因此我们干脆直接用指令对O侧的红石粉进行方块状态测试:
/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]——基岩版
虽然方块状态我们并没有了解过,但也快了,这边先预习一下也无妨。上面的指令的作用是:探测指令执行地点(也就是你的位置)的方块是否是红石线,且power(redstone_signal)方块状态的值为15。其中,power(redstone_signal)方块状态的作用就是储存该红石粉的红石信号强度等级。
站在O侧的红石粉上,根据你的版本选择性运行上面的指令。如果指令运行成功,那么就代表着这个红石粉具有15级的红石信号,也就验证了我们上述的猜想。那么实际情况怎么样呢?
指令确实运行成功了。
这意味着什么呢?这意味着,红石比较器不会导致红石信号的衰减。但随之而来就有另一个问题——红石比较器会像红石中继器一样增强信号吗?
让我们再测试一下,将上面的结构改成下面这样:
┊——究竟是14级还是15级?
┏O┓
B△C(插图:91-5)
┗A┛
┊——14级红石信号
┊——15级红石信号
?
图例
┊······红石线
?······红石块
然后还是老样子,对O侧的红石线进行方块状态测试,只需要把『15』改成『14』就行。那么结果如何呢?
这章没有结束,请点击下一页继续阅读!
指令也是成功运行!
如果你不放心,你还可以重新测试一下『15』的值,然后你就会发现指令执行失败。
所以说,总结下来,红石比较器并不会导致红石信号衰减,也不会增强红石信号。借此原理,红石比较器的第一个重要用途就出来了:
保持信号强度(插图:91-6)
我们上面的讨论都仅仅基于A后侧输入口和O输出口,但红石比较器还有两个输入口:B左侧输入口和C右侧输入口。这两个输入口有什么用呢?