密尼世界是2009年一個老頭做的,在這款遊戲還沒有發佈的時候,那個老頭就已經死了,一個瑞典人得知了這一訊息後,就把遊戲的玩法抄走了,後來那個老頭的家人發現了老頭做的密尼世界,然後那個老頭的家人就把這款遊戲發佈出去了。 老頭的名字叫王浩然,2009年5月11日死的。瑞典人的名字叫Notch,2009年5月12日抄走的玩法。
基本概念
在描述能夠建築紅石電路的方塊以及可建的電路種類之前,您需要對一些基本概念有所認知。
紅石元件
紅石元件能夠接受紅石訊號並作出反應(例如移動、發光等),例如活塞、紅石燈、發射器等。紅石元件是在紅石電路裡具有一定使用目的的方塊,大致分為三個大類,部分電路提供能量來源,例如紅石火把、按鈕、控制桿、紅石方塊、壓力板等。
- 電源為整個電路或部分電路提供能量來源,例如紅石火把、按鈕、控制桿、紅石方塊、壓力板等。
- 傳輸線將電能從電路的一部分傳遞到另一部分,例如紅石粉、紅石中繼器、紅石比較器等。
- 機械接受電能並作出反應(例如移動、發光等),例如活塞、紅石燈、發射器等。
充能
紅石元件與部分方塊能夠被充能或解除充能。如果說一個方塊被「充能」了,則這個方塊就可以作為電源,能向毗鄰的「用電」方塊供電以使其工作。(「毗鄰」是這樣定義的:一個方塊是正方體,正方體有6個面。也就是說與一個方塊的任意一個面接觸的方塊最多可能有6個,稱之為「與該方塊毗鄰的方塊」)。
當非透明方塊(例如石頭、砂岩、泥土等)被電源 (或是中繼器、比較器)充能,我們稱這個方塊被強充能了(這個概念與充能等級不同)。強充能的方塊可以啟動毗鄰的紅石線。絕大多數電源可以強充能自身。
當非透明方塊僅被紅石線充能,我們稱這個方塊被弱充能。被充能的方塊(無論強度如何)都可以影響毗鄰的紅石元件。不同的元件產生的反應不同。您可以查看這些元件的具體描述。
沒有不透明的方塊可以直接為另一個不透明方塊充能,因為中間必須有紅石粉或其他紅石元件。透明方塊不能被任何東西充能。「強」與「弱」充能僅適用於不透明的方塊,而不適用於紅石粉或其他紅石元件。
被充能的方塊(強或弱)會影響相鄰的紅石組件。不同的紅石組件對其反應有所不同。有關詳細資訊,請參閱個別描述。
充能等級
充能等級(又稱「訊號強度」)為0到15的整數。大多數電源組件均提供滿強度的15級訊號,但少數電源組件能提供不同的訊號強度。
紅石線能向相鄰的紅石線傳導訊號,但每傳導1格,充能等級就降低1。因此,連續的紅石線最遠能將能量傳到15格遠。為了突破這個限制,你可以保持(使用紅石比較器)或是重新加強(使用紅石中繼器)紅石訊號。充能等級只會因為紅石線之間的直接傳導而衰減,不會在紅石線與其他元件或方塊之間衰減。
您可以透過調節處於減法模式或比較模式的紅石比較器以直接控制輸出不同的訊號強度。
紅石(狀態)更新
當電路的某一部分發生狀態的改變,該改變會引起毗鄰方塊的「紅石(狀態)更新」(請勿與Minecraft 1.5正式版的名稱「紅石更新」混淆)。紅石更新是個連鎖反應,會計算直到到達已載入區塊的邊界,通常這個過程極為迅速。然後,這些變化中的每一個都可以在其周圍方塊中產生其他變化。每次更新將按照載入區塊中的紅石電路規則傳播(更新不會傳播到卸載的區塊中),通常速度非常快。
單次紅石更新會使得其他紅石元件得到「附近發生變化」的提示,並得到作出相應狀態變化的機會——但並非所有紅石更新都會導致變化。例如新放置的紅石火把並不會使得旁邊已經被啟動的紅石粉發生狀態改變,這樣,紅石更新在這個方向上的連鎖反應就會在此處終止。例如,如果紅石火把啟動並更新其下方的紅石粉,紅石粉可能已經由其他東西充能,在這種情況下,紅石粉不會改變狀態,更新的傳播也將停在那裏。
紅石更新也會在任何臨近方塊被放置、移除或摧毀時發生。
固體方塊不會知道它們是否被充能。紅石狀態更新只是更新紅石元件周圍的足夠的方塊以更新周圍的其他紅石元件(例如,壓力板更新其相鄰方塊及其附加方塊的相鄰方塊,其中包括該方塊下方的紅石粉)。
除了紅石狀態更新之外,紅石比較器還可以透過容器(包括帶有容器礦車的感測鐵軌)和某些其他方塊進行更新。狀態發生變化時(例如物品欄裡的物品發生變動)的水平距離最多為兩個方塊。
下列紅石元件會使得以曼哈頓距離度量的2格以內產生紅石更新:
下列紅石元件會使其比鄰方塊,以及紅石元件附著方塊的比鄰方塊產生紅石更新:
- 紅石比較器(就好像「附著」在它朝向的方塊上)
- 紅石中繼器(就好像「附著」在它朝向的方塊上)
- 按鈕
- 感測鐵軌(僅限水平鐵軌,還會使得比較器更新)
- 控制桿
- 壓力板
- 陷阱儲物箱 (下方方塊還會使得比較器更新)
- 絆線鈎
- 測重壓力板
- 偵測器
下列紅石元件只會使其比鄰方塊產生紅石更新:
這是一個異或門。是一個帶2個輸入端的T型觸發器。
下列方塊狀態變更時不會引發紅石更新或方塊更新(儘管任何方塊在移動或被破壞時都會在其相鄰方塊上產生方塊更新):
- 指令方塊(但會使比較器更新)
- 重複型指令方塊
- 連鎖式指令方塊
- 發射器(但會使比較器更新)
- 投擲器(但會使比較器更新)
- 門
- 柵欄門(可移動)
- 漏斗(但會使比較器更新)
- 音階盒
- 紅石燈(可移動)
- 地板門(可移動)
紅石刻
紅石刻(Redstone tick)為Minecraft計算紅石機構狀態的最小時間單位,等於0.1秒。紅石火把,中繼器以及啟動的紅石組件需要1刻或更多時間改變狀態,這就引入了在大型電路中至關重要的延遲。
紅石刻與「遊戲刻」或「方塊刻」不同。當討論紅石電路時,「刻」一詞僅指「紅石刻」。
訊號與脈衝
具有穩定輸出的電路能夠產生訊號——「啟動/非啟動」時稱為「真/假」或「高電平/低電平」。當訊號出現一個較為短暫的非啟動-啟動-非啟動過程,該過程通常被稱為脈衝(或正脈衝。相反的過程被稱為負脈衝)。
非常短的脈衝(1-2刻的)可能會使一些電路組件由於紅石部件的更新順序差異而產生問題。例如紅石火把、比較器無法響應由中繼器形成的1刻脈衝。
啟動
機械元件的啟動 — 機械元件可被電源元件(如紅石火把)、充能的方塊、紅石粉、中繼器與比較器以恰當的方式啟動
機械元件(活塞,門,紅石燈等)可被啟動,引發機械元件的反應(如推動方塊,開門,紅石燈點亮等)。
所有機械元件都可以被下列方塊啟動:
- 毗鄰的,處於啟動狀態的電源元件
- 例外:紅石火把不會啟動其附著的機械元件,活塞不會被其活塞臂朝向的電源元件啟動
- 毗鄰的充能非透明方塊(強充能與弱充能均可)
- 面朝機械元件,且啟動的紅石比較器或紅石中繼器
- 連接指向機械元件(或如果機械元件上表面能夠放置紅石粉也可以),啟動的紅石粉,或毗鄰的點狀紅石粉;毗鄰的,但未指向機械元件的紅石粉不會啟動機械元件。
准聯通方式啟動——活塞也能夠被能夠啟動活塞之上空間的東西啟動。請注意,最左側的夠活塞並未被准聯通啟動,因為紅石粉僅僅是路過了活塞上面的方塊,而不是直接指向該方塊,因此無法啟動該活塞
有些機械元件只會在剛啟動時有所反應(如指令方塊執行指令,投擲器與發射器發射物品,音階盒播放一個音符),直到反啟動-啟動之前都不會再有所反應。其他機械元件會在啟動時始終保持狀態,直到反啟動(紅石燈保持點亮,門保持開啟,漏斗保持不工作狀態,活塞保持伸出等)。
部分機械元件可以用其他方式啟動:
- 發射器、投擲器與活塞可以被以下方式啟動:即如果一種方式能啟動該機械元件之上比鄰的「虛擬元件」(因為是「虛擬」的,就算是空氣或透明方塊也無礙),該機械元件也會被啟動。這種情況有時也會表達為:該元件可以被斜上方或上方2格的方塊啟動。右圖即為這類方式的例子。 這種方式被稱為准聯通。
- 雙開門佔地2格,則准聯通可用空間也加倍,即任意一邊門的上方。
充能與啟動
充能與啟動 — 上方的紅石燈既被「啟動」(因此紅石燈點亮),也被「充能」(因此毗鄰中繼器啟動,且下方紅石燈點亮),但下方紅石燈只是被「啟動」,並未被「充能」
對於非透明機械元件(包括指令方塊、投擲器、發射器、音階盒與紅石燈),因為非透明方塊可以充能,因此區分它們是被「啟動」還是被「充能」相當重要,也因此我們將「啟動」與「充能」作為兩個獨立的概念進行表述。
- 如果機械元件能夠啟動鄰近的紅石粉,那麼稱其為被充能了。
- 如果機械元件本身能夠作出一定的反應,那麼稱其為被啟動了。
任何充能機械元件的方法也會同時啟動機械元件,但一些啟動方法(如比鄰被充能的非透明方塊)並不會充能該機械元件。
透明機械元件(門、柵欄門、活塞、漏斗、鐵軌、地板門)可被啟動並作出反應,但因為不具備非透明方塊的性質而無法被充能。
電路與機械
兩個術語通常都用於指包含電路組件的結構,但兩者一般還是有明顯區別的:
- 電路(circuit)為處理訊號的結構(生成,修改,組合等)。
- 機械(mechanism)會對環境產生影響(移動方塊,開門,改變光照強度,播放聲音等)。
所有機械均包含紅石組件或電路,但電路本身是不會對環境產生影響的(除了紅石火把或中繼器在啟動時產生的光,或活塞作為電路組成成分之一時造成的推拉方塊的負效果)。明確這些簡單的概念有利於我們理解紅石電路
電路尺寸
本wiki用寬× 長× 高的格式(電路的外切長方體)描述電路的尺寸,其中包括底板支撐方塊,但不包括輸入/輸出。
描述電路尺寸的另一種方法是忽略最下層支撐電路的那層方塊(例如位於下層紅石粉之下的方塊)。然而這種方法無法區分平面電路與一格高的電路。
通常直接用電路的佔地面積,或是直接用1格寬的電路的長度描述電路尺寸較為方便。
電路特性
根據不同的設計目標,您應當考慮一些常見的特性:
- 1格高電路
- 1格高電路只有1格,也就是說這種電路不能存在需要下方方塊支撐的元件(例如紅石線、紅石中繼器)。
- 1格寬電路
- 1格寬電路指至少1個橫向尺寸為1。
- 平面電路
- 指的是可以直接建造在地平面,不需要層疊元件(不計方塊支撐紅石元件)的電路。平面電路通常利於初學者理解與學習。
- 隱形電路
- 指的是可以完全隱藏在一堵牆,或地板之下,或天花板之上的電路。這種電路尤其適合活塞門。
- 立即響應電路
- 指一接到輸入訊號,能夠馬上輸出的零延遲電路。
- 靜音電路
- 指不會發出聲音的電路。這種電路不會有活塞、發射器、投擲器等會發出響聲的元件。此類電路適合陷阱、安靜環境以及需要減噪的電路的建造。
- 可堆疊電路
- 指同樣的電路可以一個直接疊在另一個上面的電路,疊放之後電路之間不會互相干擾。
- 可並列電路
- 指同樣的電路可以一個直接比鄰另一個旁邊建造的電路,比鄰之後電路之間不會互相干擾。
可能還會有其他的設計目標,包括降低子電路延遲、減少昂貴元件消耗(例如比較器)與儘量減小設計尺寸等。
電路類型
雖然建造電路的方法無窮無盡,但特定的電路建造樣式是比較固定的。下面的章節對Minecraft社群中流行的電路進行了分類,每個章節有獨立的主條目用於描述具體的電路設計方案。
某些電路可能只能完成最簡單的控制功能,但你將逐漸能用此類簡單電路的組合成複雜的、能夠滿足機械需要的大型電路。
傳輸電路
訊號傳輸常用術語包括:傳輸類型,縱向傳輸,中繼器與二極管。
向上縱向傳輸
向下縱向傳輸
基岩版中的雙向垂直梯子
- 雖然橫向傳輸較為直接,但縱向傳輸有時具有出人意料的適應性與集成性。
在攜帶版之中,可以透過八個雪堆疊形成類似於雪塊的方塊進行梯式縱向向下傳輸[同半磚/階梯/螢光石]
- 「二極管」指只允許訊號單向傳輸的電路,通常用於防止電路反向干擾引起的狀態改變或延遲紊亂,也可以用於防止大型電路中的線路彼此串擾。常用的二極管包括紅石中繼器、一格高的螢光石與無法向斜下方傳輸訊號的倒置半磚。
- 很多電路已經具有單向性,因為它們的輸出端不會接受輸入訊號,例如以附著在方塊側面的紅石火把作為輸出的電路。
邏輯電路
有時,你需要判斷輸入訊號,經過一定的算法產生一個輸出。這類電路即為人們耳熟能詳的邏輯門(「門」只讓滿足「邏輯」的訊號輸出)。
| A | 開 | 開 | 關 | 關 | 對應語言表述 |
|---|---|---|---|---|---|
| B | 開 | 關 | 開 | 關 | |
| 非A | 關 | 關 | 開 | 開 | A為0嗎? |
| A或B | 開 | 開 | 開 | 關 | 有輸入為1嗎? |
| A或非B | 關 | 關 | 關 | 開 | 兩個輸入均為0嗎? |
| A與B | 開 | 關 | 關 | 關 | 兩個輸入均為1嗎? |
| A與非B | 關 | 開 | 開 | 開 | 有輸入為0嗎? |
| A異或B | 關 | 開 | 開 | 關 | 兩個輸入不同嗎? |
| A同或B | 開 | 關 | 關 | 開 | 兩個輸入相同嗎? |
| A蘊含B | 開 | 關 | 開 | 開 | 如果A為1,B也為1嗎? |
- 非門(即「反相器」)的輸入與輸出相反。
- 或門在任意一個輸入為1時,輸出為1。
- 或非門在任意一個輸入為1時,輸出為0。
- 與門在所有輸入都為1時,輸出為1。
- 與門在所有輸入都為1時,輸出為0。
- 異或門在輸入不同時,輸出為1。
- 同或門在輸入相同時,輸出為1。
- 蘊含門僅當第一個輸入為1,第二個輸入為0時,輸出為0。
脈衝電路
某些電路需要特定長度的脈衝,其他電路用脈衝長度傳達特定資訊。脈衝電路派上了用場。
在一個狀態穩定,另一個狀態不穩定的電路通常稱為單穩態電路(monostable circuit)。大多數脈衝電路屬於單穩態電路電路,因為它們的啟動態(非穩態)只能持續較短時間就回到穩定態。
- 脈衝發生器
- 脈衝發生器產生特定長度的脈衝。
- 脈衝限制器
- 脈衝限制器(又稱脈衝縮短器)可以縮短過長的脈衝。
- 脈衝穩定器
- 脈衝穩定器(又稱脈衝延長器)可以延長過短的脈衝。
- 脈衝延遲
- 脈衝延遲電路能夠為脈衝提供延遲。
- 邊沿感應器
- 邊沿感應器在訊號變化時:從0到1(「上升沿」感應器)或從1到0(「下降沿」感應器),或兩者均感應(「雙邊沿」感應器)。
- 脈衝長度識別器
- 脈衝長度識別器能夠在輸入脈衝長度在某個範圍內時輸出訊號。
- 示波器
- 示波器為依次連接的比較器(1.5以下可以用1刻的紅石中繼器)鏈,據此能夠透過點亮的中繼器數量直觀地測量脈衝長度。
時鐘電路
時鐘電路為持續、重複提供特定長度脈衝的脈衝發生器。一些時鐘電路可以永久工作,另一些則可控。
簡單的時鐘電路只有兩個等長的狀態(0與1長度相同)。例如5刻啟動與5刻非啟動的時鐘被稱為5刻時鐘。
- 中繼器時鐘
- 利用中繼器(鏈)獲得時鐘電路中必要的延遲的電路。通常需要紅石火把以獲得反相功能。
- 漏斗時鐘
- 漏斗時鐘透過漏斗鏈循環傳遞物品,並透過紅石比較器偵測輸出。
- 活塞時鐘
- 利用活塞對方塊的推拉完成電路的反相功能。
時鐘電路也可以基於日光感測器、礦車、船、掉落物品的自然消失、水的流動等。
記憶電路
與邏輯電路永遠反映輸入訊號不同,記憶電路的輸出不單與輸入相關,還與「過去的輸入」相關。這樣能夠完成對電路過去狀態的「記憶」。在現實生活中的電子學中,鎖存器指對輸入訊號的某個狀態產生反應的電路;觸發器指對輸入訊號的變化產生反應的電路。
- RS鎖存器
- RS鎖存器有2個輸入。輸入端為S(Set)端與R(Reset)端:S端輸入一旦變成1,輸入就為1並保持;R端輸入一旦變成1,輸入就為0並保持。最簡單的RS鎖存器為知名的「RS或非鎖存器」,其為Minecraft最古老也是最常見的記憶電路。
- T觸發器
- T觸發器用於訊號切換(類似控制桿)。T觸發器具有「時鐘」輸入端,輸入端滿足特定條件時,輸出端會切換一次。
- D觸發器
- 具有"data(資料)"輸入端與"clock(時鐘)"輸入端。輸入端滿足啟動條件時,輸出端會變成此刻資料輸入端相同的狀態。
- JK觸發器
- 具有稍微複雜的時序邏輯。詳見具體條目。
- 計數器
- 與基本觸發器不同,計數器能夠具有多個狀態,從而完成對較大數字的計數。
還有很多記憶電路可供選擇。
雜項電路
此類電路一般不常見,但卻是大型複雜工程的重要組成部分。
- 資料分配器與繼電器
- 資料分配器為邏輯門的高級形式之一,選擇端的輸入訊號決定輸出端輸出與哪個輸入端的資料。
- 多輸入電路
- 多輸入電路能夠同時處理多個輸入並得出綜合輸出。此類電路是建造計算器、數字鐘與基本計算機的基石。
- 方塊更新感應器
方塊更新感應器(Block Update Detector,縮寫為BUD)為能夠對方塊狀態改變產生反應的電路(例如石頭被開採,水變成冰,南瓜長出等一切涉及方塊的資料變更的行為)。BUD透過產生脈衝作出反應,而T-BUD(可切換開關的BUD)透過切換其輸出狀態作出反應。這些通常基於裝置行為中的細微怪癖或故障;電流迴路通常依賴於活塞。在1.11更新中,BUD的許多功能都被濃縮為高度需求的偵測器。加入這個是為了與基岩版享有同樣特性。
愛好者們還有很多更複雜的電路方案。
建造電路
計劃
建造紅石電路的第一步是確定電路能做些什麼。
- 應該在哪裏控制整個電路?如何控制?
- 電路是由玩家控制,生物移動控制或是其他控制方式?
- 電路能夠實現什麼樣的功能?
- 照明、推動方塊/生物、識別物品或其他?
- 訊號如何從控制端傳向機械?
- 需要將多個來源產生的訊號組合到一起嗎?
建造
建造電路時使用特定的方塊組合是個不錯的習慣,這樣你當修建其他的工程時,看到這些方塊你就能意識到不能再繼續挖了。常見的選擇有石磚、雪塊與羊毛(不同顏色的羊毛有利於你自己區分電路的不同部分)。
當在水或熔岩邊上建造電路時要特別小心。很多電路組件會在液體流過時被破壞。
建造電路以引爆TNT(陷阱或大炮)時要格外小心。建造中的電路可能會意外觸發TNT,因此強烈建議最後再放置TNT。例如,如果你將紅石火把放置在被充能的方塊上,它將不會「弄清楚」它應該在下一刻之前關閉,並且可以短暫地為電路的另一部分充能直到那時候。在電路的其餘部分完成後放置TNT將有助於避免此類問題和元件本身的損壞。這也適用於可能透過這種動作意外啟動的電路的任何其他特徵(例如,在電路準備好之前啟動發射器)。
解決問題
當電路出問題時,仔細檢查,嘗試尋找出問題的來源。
- 你是否想從一個弱充能方塊引出電能?也許你需要紅石中繼器使其強充能,或者用紅石中繼器引出電能。
- 你是否想讓電能穿過一個透明方塊?用非透明方塊代替它,或者繞道而行。
- 你是否無意中建造了一個短路電路,使得本來應當啟動的紅石火把燃盡了?修正短路電路,並更新紅石火把的狀態。
- 本不該啟動的電路部分是否錯誤啟動了?也許你不小心把不同部分的線路之間連了起來。
- 活塞、發射器或投擲器的啟動方法是否錯誤?
精煉
電路正常工作後,考慮一下是否能夠提高電路(而不是破壞電路)的效能。
- 你能讓電路反應更快(延遲更短)嗎?
- 減少訊號傳輸中不必要的元件數量,如會拖延時間的中繼器。
- 你能讓電路更小嗎?
- 你能使用更少的方塊嗎?
- 你能縮短紅石線的長度嗎?
- 電路在極短的脈衝下依然能正常工作嗎?
- 電路在頻繁地啟動/非啟動交替下依然能正常工作嗎?
- 你能讓電路更穩定嗎?
- 當脈衝非常短時,電路是否仍然有效?
- 當電路連續快速啟動和停用時,電路是否仍然有效?
- Minecraft新版本的特性是否有助於提高電路的效率?(如紅石比較器、鎖存中繼器和偵測器等)
- 電路雜訊能小一些嗎?
- 能儘量少用發出聲音的方塊嗎?
- 你能夠減少任何延遲嗎?具有許多紅石元件的構造經常改變狀態,會導致光、聲音、顆粒或更新延遲。