原帖http://zh.minecraftwiki.net/wiki ... 3%E7%94%B5%E8%B7%AF
搬运会分多个大章节(不是骗加分……页面内容实在太多没办法)
这一篇主要由我翻译。
您也可以参阅活塞电路
中继器/二极管(Repeater/Diode)
红石中继器方块
请参阅红石中继器篇目以获得更多细节。从Minecraft Beta 版本 1.3以来,一个红石中继器方块可以由3个石头,2个红石火把和一个红石粉合成。红石中继器能够将导线上的信号再延续15格,或者对信号造成1到3单位的延迟。
传统的中继器/二极管设计
使用两个串联的红石火把做成的传统中继器可以有效的解决游戏中红石线导电最大15格的限制。在1.0.2版本后(2010年7月6日更新),两个红石火把中间必须要有红石线相连。传统红石中继器可以将长距离电路延伸的整个地图范围,不过在实际使用中,它也会拖慢整个传导过程。为了减少延迟,可以将传统中继器两端的红石火把距离变长,也就是拉长中间的非激活红丝线。只要保证红石火把(或者精确的说是非门)是成对出现,就可以保证电路的正确。在更进阶的电路中,传统中继器还可以作为半导体来隔离输入端或输出端。
无延迟中继器
无延迟中继器的一个例子
活塞的出现使得包括活塞的电路具有通过改变固体方块位置来对电路作出立即改变的能力。
如果一个方块正被活塞推动或拉动,此时它就相当于玻璃一样——立即切断或者继续电能传导。这种特性可以被利用于建构具有极高时间效率的电路中。
铁轨型T触发器
铁轨型T触发器
另一种铁轨型T触发器设计方案
铁轨型T触发器是使用铁轨与红石构造T触发器的方法。铁轨型T触发器比传统的T触发器慢,但在某些情况下可能更加适应地形。
在铁轨拐角处的木质方块为压力板,他们是用来切换底部RS或非锁存器的状态的。
双向中继器
双向中继器
使用中继器方块的双向中继器设计
这个电路是一个双向中继器,发挥作用时表现为一条伸长有效距离的红石线。不像一般的中继器,这种中继器对两个方向的输入信号均有效。依实际应用情况而定,它并没有传统的输入端与输出端。
而且,这个电路甚至能够告诉你信号的流动方向。一旦电路被激活,图中看上去未点燃的两个火把的其中一个就会点亮,此时该火把面对的方向就是信号的流动方向。例如,如果从A端输入,右下方的火把会被点亮。简而言之,该电路的主要作用是在不会对信号流动方向进行限制的前提下模拟普通的红石线(但在内部依然包括可以指出信号流动方向的单向结构)。
这个电路可以通过使用中继器方块以避免短接,而且可以压缩三个方块的占地面积。
南北向传输畸变(The north/south quirk)
| 下文中的内容讲述了一个通过Minecraft的漏洞来实现特定功能的装置。这个漏洞有可能在未来某个版本被修复。本文章功能在修复后的版本将不再有效。 请慎重对待 |
图1:两个可用的朝向
图2:等延迟反相输出
这里有一种含红石火把的特殊构造。本来,建构这个构造是为了起到一个2刻延迟的中继器的作用,但这种构造可能只会造成1刻延迟。(请看图1)当红石火把朝东或朝西,整个构造延迟2刻;但当火把朝南或朝北,第二个(即顶端那个)火把会与第一个火把同时改变状态,从而只产生1刻的延迟。
当不加以解释的时候,这种畸变可能会导致在复杂电路设计中出现BUG,但畸变本身有一些用处。例如,双开门需要互为反相的红石型号控制,但对一个信号反相会产生1刻延迟。在Beta 1.3版引入红石中继器之前,唯一能够使两扇门同步开关的方法就是利用图中所示的电路。另一种应用为下图中的具有偶数宽度与周期的时钟发生器。
总而言之,由于双开门的特性,南北向传输畸变可以使控制信号在被反相后仍然与原信号同步,从而避免非门的1刻延迟。(请看图2)当您要设计具有精准时间的电路时,畸变的应用就不可或缺了,比如依赖于边沿信号传输的信号处理中。例如通过两个互相分离的边沿感应器以输入互相反相的信号,然后对它们的输出求或即可。
延时电路
用于加长信号传输速度的压缩版延时电路
有时您希望在您的电路中引入延时。延时电路是为了达到延时目标而建造的传统压缩版设计。然而,Beta 1.3版引入了单个的方块红石中继器,它能够被设置为1,2,3或4刻延迟,从而使延时电路过时了。出于篇目完整性的考虑,我们仍然保留了这个章节以供您参考。
这里的两个电路运用大量红石火把以保证压缩性,但也正因为如此您需要注意南北向传输畸变。为了达到最大的延迟,请在建造时使得附着的火把都朝向东边或西边。为了最大限度地微调其延迟,您可以小心地调整各火炬的朝向。
设计方案A具有4刻延迟,设计方案B有3刻延迟。
时钟信号发生器(Clock Generators)
时钟信号发生器与脉冲信号发生器
时钟信号发生器是输出信号周期性切换的电路。最简单、稳定的时钟信号发生器是5刻时钟(设计方案B与C)。如果按照类似的方法,您也可以建造1刻时钟与3刻时钟,但它们里面的红石火把会由于切换速度太快而燃尽,所以说它们是不稳定的。因而您需要应用其他方法来建造1刻时钟,这种结构被称为“快速脉冲发生器”(设计方案A与F)。 增长反相器链可以加大时钟信号的周期(设计方案B' 与C' 展示如何达到增大周期的目的)。或者,您只要串入一个设置为3刻或4刻的中继器就可以了。
通过使用一个完全不同的方法,我们可以建造4刻时钟(设计方案D)。4刻时钟信号是在不会使火把燃尽的前提下所能达到的最快时钟。
4刻时钟也可以像在设计方案E里那样使用5个火把就能达到。这种方案利用了南北向传输畸变的BUG。所以,此设计的整体朝向必须在南北方向上。(术语x刻时钟由时钟周期的一半而得(通常也就是时钟脉冲的宽度)。例如,设计方案design B(5刻时钟)会输出如下序列码(当然每一位持续1刻):...11111000001111100000...
设计方案F与G是可用的纵向设计。
设计方案H是由BlubQ设计的稳定1刻时钟。激活方法为:如图建造,但最后放置活塞前的那个方块,这样,活塞会以极快速度伸缩。
您不会看到红石粉的明暗变化——因为其状态的切换周期已经比游戏的运行基本周期更小了。
在时钟的输出端仍然有信号。您可以在那里放一个活塞来测试。活塞应该会不断快速地伸出与缩回。
带有中继器的时钟设计
多个使用中继器的时钟。延迟可以被更多的中继器所增加到几乎无限大
1刻时钟(手动开启)
在Beta 1.3版中引入红石中继器后,时钟信号发生器可以被简化为至多1格:一个红石火把与连接的任意个中继器链,或者仅仅两个(或更多)中继器与四个红石粉。
时钟的延迟可以通过调节中继器与增加中继器数量来实现,但在最快速度下时钟实际上不实用——因为其会很快使火把燃尽。为了避免这情况发生,中继器应当被设定到第三状态。
带有活塞的时钟设计
一个活塞时钟的例子
在Beta 1.7版被引入之后,活塞可用于制作新型的可更改脉冲长度的时钟,而且不需要用到脉冲信号发生器。这种特性使得建构更复杂、反应速度更快的活塞电路成为可能。
活塞时钟的不同设计
这个改进版需要两个粘性活塞,但比起前一种设计更稳定,而且当红石火把状态相同时活塞不会出现卡住的BUG。您可以通过把一边的红石设为高电平以使时钟停止工作。中继器可以在数量上无限扩展(当然最大不能超过载入地区的面积)。
带有矿车的时钟设计
一个简单的矿车时钟
矿车时钟建造起来十分简单,修改起来也不困难,但并不十分可靠。矿车时钟主要由小规模环形铁轨组成,铁轨里会有一个或多个矿车加速器(在Beta 1.6之后矿车加速器作为一个BUG已被修复。现在主要依靠充能铁轨进行加速)与探测铁轨,以及在上面循环运行的空矿车。每次循环,矿车都会被加速装置推进,然后经过探测铁轨时输出一个红石信号。不像活塞时钟,矿车时钟不会发出声音,而且您能够通过增减铁轨长度以轻松地调节每两个信号之间的间隔。但矿车时钟具有一个重大缺点:它很容易被玩家或者生物干扰;而且,合成充能铁轨所需的黄金也使矿车时钟的成本比较昂贵。
延时达半日的矿车时钟
一个多层半日时钟的例子。注:红线右侧的电路连线当且仅当您要将其连接到RS锁存器序列以控制时钟时才是必要的
注:这里的“半日”指Minecraft中的一个白天的一半,即现实中的5分钟。
改进的铁轨T触发器是半日时钟的核心部件。因为这个时钟利用了掉落的物品经过5分钟后会消失的特性来向充能铁轨输出能量,以及触发两个分离的探测铁轨,所以它能够即使电路本身具有延迟的情况下仍然可以每5分钟切换一次状态。半日时钟是目前Minecraft中最准确的时钟。
可控时钟可控时钟是5刻时钟和与门,或者与非门的组合。输出端位于时钟的第一个反相器,与门的一个输入端与时钟输出端相连。
可切换时钟
基于按钮的可切换时钟
在一个时钟里,用一个非门代替任意一个中继器,然后在非门的方块上增加一个拉杆输入,一个可切换时钟就完成了。值得注意的是除了非门本身之外的环路延迟必须相当于至少3个未调节过的中继器的延迟(3刻),否则非门的红石火把会燃尽。
您也可以利用按钮(或其他脉冲发生器)与两个修改过的脉冲发生器创建一个压缩版的可切换时钟(见下)。您有可能必须调节第一个脉冲发生器中的中继器以得到更长的脉冲,从而更容易地完成切换。
瞬时设备
随机短脉冲信号发生器
瞬时设备
瞬时设备的内部结构
这类设备输出不稳定的信号序列。瞬时设备是先前所介绍的“快速脉冲信号发生器”的衍生型,但实质上内部的火把都处于伪随机状态:其它三个火把都熄灭时,剩下那个火把才会点亮,而且该火把会被上方的反馈回路在很短时间后再次偶然地燃尽(在此期间其他火把仍在闪烁)。
您可以这样建造:把一个方块的四侧都插上红石火把,在方块上方放置红石线,然后在每个火把上都放置方块。您可以把任意一个火把当做输出。
超长延迟电路如果利用具有不同的延迟长度与一个与门的两个中继器环链,您可以在输入与输出之间加入极长的延迟,同时兼顾压缩性与经济性。[1]
由于两个环链都需要连到与门,但具有不同周期(一个55刻,一个56刻,都需要28个中继器),所以输入到输出的实际延迟被戏剧性地大大增加( 实际延迟为55与56的最小公倍数。由于两数为互质数,所以总延迟为3080刻,即略大于5分钟。相对于在一条直链的中继器能达到的最大112刻,这个数字十分可观)。
ABBA切换器(ABBA Switch)
ABBA切换
当您应用活塞时可能会遇到需要按照一定次序激活它们,但需要按相反次序关闭。比如隐蔽型活塞门,它们的控制电路一般都很庞大。本篇目介绍的压缩电路之所以被命名为ABBA切换器,是因为它被设计为先开启输出端A,再B,然后关闭则是按照先B后A的顺序。
ABBA切换器
延长版ABBA切换器
您也可以添加另外的C、D输出端,依此类推。然而增加输出端的结果是延迟的增加——因为电能在输出动作完成之前就要到达输出端的相反次序的起始点。中继器的档位还可以被提高,从而提高任意切换器的延迟。
纵向传输
向上的1x1塔式中继器
向下的1x2塔式中继器
输出可以被拓展到任何高度(点击查看动画)
有时您需要纵向地传输红石信号(例如,您需要在单一的观察点控制多个电路)。为了实现纵向传输,您需要构建2x2的螺旋结构以传输电能到任意方向。
如果中继器是必要的,这里有一个1x1的可以向上传输的设计,和一个1x2向下传输设计。为了让整个结构有效,您不应当让最上方的火把点亮,只有熄灭状态能够在需要时切换电路状态。
另一种短延迟的向下传输方案占地面积为3x1,而且用中继器代替了火把。本电路的优点是输出能够被轻易导出到任意高度,而且相位相同。
数据选择器(Multiplexer, MUX)
数据选择器(动画展示)
数据选择器能够允许您从一个或多个输入信号中选择一个直接作为输出信号。右图的数据选择器能够多层级联,从而提供3位(3 bit)或更多位的数据选择功能。
注:输入端有“非A”,B,C。
-输入端A和B在底层(左侧是“非A”,右侧是B)。
-输出端在顶层。C端(“C”即“Control”,控制端)就是最顶层的红石线最顶层的任意红石线都可以当做C端进行输入。尺寸:4x3x3红石数量:16(12红石线,4火把)
继电器(Relay)大型:http://i1221.photobucket.com/albums/dd478/AJFayer/Relay.jpg
中型:http://i1221.photobucket.com/albums/dd478/AJFayer/RelayM.jpg
小型:
Relay (small)
请参阅数据选择器章节。本章节实际上是上一节的重复,故您可以忽略本章节。
继电器允许您选择将一个输入导向两个输出的某一端。继电器由两个与门与一个RS或非锁存器组成。默认情况下,继电器某一输出端有效,通过对锁存器的操作您可以将输出换成另一个端口。不像单个RS或非锁存器具有稳定不变的输出,继电器允许您输出可变信号——也就是说您可以不输出任何信号,也可以选择信号的输出端。这个特点对于锁,以及其它涉及到接收到触发事件才输出可变信号到某输出端的应用实例,是十分有用的。
这里有一个您需要应用继电器的例子:一个锁,需要您以指定顺序按动多个按钮以开启。继电器允许您让单个按钮可以被使用多次(继电器将信号在不同时间导向多个输出端)。您还可以制作需要用开关输入多个数字的多位二进制组合锁。您可以用四个开关输入4位数字,第五个开关用于验证数字。第五个开关可以将继电器切换到其他开关从而让您能够使用同一个开关输入第二个数字。
-通过将RS或非锁存器的两个输出到任一与门来建造继电器,然后对其他与门输入端加入共同的一个输入端。触发锁存器就能够改变输出。
可逆顺序激活器
可逆顺序激活器
本机构的作用与ABBA切换器有相似之处
这个机构有如下作用:当S端被按下,输入A先为真,然后才轮到B。当R端被按下,输入B先为假,然后才轮到A。从而有效地改变操作顺序。这个机构在双活塞结构中十分有用。
移位寄存器(Shift Register)移位寄存器实际上是D触发器的串联,或是共享时钟输入的JK触发器序列。特点是前一个触发器的输出还会连到下一触发器的D输入端。故移位寄存器按照时钟输入的触发速度能够将串行数据依次显示在各个输出端。[2]
移位寄存器具有多种移位方式:
逻辑左/右移位: 逻辑移位指溢出的位不会被储存。在另一端多出来的空位被补零操作代替。因此逻辑移位方式适用于无符号二进制数字。
循环移位:移位的另一种形式是循环移位,一般称为“位循环”。在位循环中,从一端溢出的位会在另一端在被补回来,就好像序列被连成环了一样。
算术左/右移位:算数左移位相当于逻辑左移位。然而在算术右移位中,并非是在左端补零,而是对最左端数字进行复制。这一特点允许您对补码形式的二进制数进行除2操作——即使它是负数。(左移位允许对带符号或无符号数进行乘2操作)
随机数据生成器(Random number generator)随机数据生成器可以输出随机生成的数据。这里有一个随机数据生成器的教程:[3]
伪随机数据生成器线性反馈移位寄存器是用来生成伪随机数的电路。下面是一个16位的线性反馈移位寄存器例子。[4]
方块状态改变感应器(BUD)
| 翻译者从英文Wiki翻译下文中的内容时感觉其艰涩难懂翻译者希望更有能力的翻译者能够帮助改善本篇目的行文,所以先请慎重对待本篇目内容。如果可能,请帮助我们完善这篇文章的内容。 |
BUD开关利用了下面的漏洞:活塞能够接受位于其伸臂伸出位置相邻的方块的电能,但无法靠该方块改变活塞自己的状态。也就是说,活塞能够得到在其伸出状态时位于其伸臂伸出位置相邻的方块传来的电能以维持伸出,但由于该方块并不与缩回状态的活塞相邻,故无法因这个位置的方块而改变状态。
BUD几乎可以应用到所有机构中,从陷阱到能够感应阳光来开关隐藏门的装置。海绵在被放置或破坏时也可以用作引起方块状态改变信号传到2格之外(海绵的功能现在已经形同虚设,本功能并不适用)。
这里有一个例子,请仔细观看作者构筑BUD的顺序。[5]
右图是只利用红石的一个BUD。
红石BUD(左)与创造(右)
本电路可以通过中继器旁方块状态的改变来充能/释能。该电路利用了中继器火把等能够使在提供他们电能的方块失去其电源时自身仍然状态不变的漏洞,从而导致中继器无电能输入时依然点亮(或熄灭的火把仍然熄灭)。当中继器毗邻的方块改变状态,中继器的状态会被修正。
值得注意的是红石线附着的那个同时也被火把附着或中继器接受电能的方块先被移除或失去能量(通过移除火把),这个漏洞就不会表现出来。
有很多可以自动复位的BUD例子。[6]
物品“按钮”
一个正在工作的物品"按钮".
托1.0正式版的福,我们现在可以让一个木制压力板像一个 按钮 一样工作了(有物品激活压力板后)。在之前的版本中,我们没有办法自动清除掉在压力版上的物品——只能等它自动消失(5分钟后)或者捡起来。所以所有的需要用物品来激活的秘密按钮都是半自动的,因为我们要手动清理掉在上面的物品。现在你可以通过把木制压力板放在栅栏 (栅栏的碰撞盒被更新为跟它自己显示出来的大小差不多的程度)上:当一个物品从一个压力板旁边压上去的时候 (不是在中间),它会直接滑过压力板而产生一个长度为1秒的脉冲 (就像一个按钮那样).
物品“按钮”: A - 物品落入点; B - 输出端; C - 物品销毁点.
为了保证物品顺利滑过压力板,我们需要用水把它冲向压力板而不是直接把它"砸"在板子上。值得注意的是,栅栏会和周围的固体方块连接,而这种连接可以阻挡物品的下落。所以确保你把流向压力板的那一格水放在非固体方块 (像玻璃) 上面。 可以肯定的一点是,为了使物品被水冲下去之后不会停在栅栏上 (虽然经测试即使是最短的2格坡道也未遇到这种情况,但为了保险起见,)所以把流向栅栏的水位弄得尽可能低。