一個12X3的紅石儲存器單元
紅石電路(Redstone circuits)為你可以建造起來用於控制或啟動其他機械的結構。
電路本身既可以被設計為用於響應玩家的手動啟動,也可以讓其自動工作——或是反覆輸出訊號,或是響應非玩家引發的變化,例如生物移動、物品跌落、植物生長、日夜更替等等。Minecraft中能夠被紅石控制的機械類別幾乎覆蓋了你能夠想像到的極限,小到最簡單的機械(如自動門與光開關),大到佔地巨大的電梯、自動農場、小遊戲平台,甚至遊戲內建的計算機。
如果您懂得紅石電路的建造方法,善於利用電路控制機械裝置,那麼你在Minecraft裡將大有可為。紅石電路本身也是Minecraft有別於其它沙盒遊戲中最優秀與突出的元素之一。
本條目僅僅是不同紅石結構的一個概述。您可以點擊各章節的主條目查看詳細資訊。紅石電路基本是基於現實生活中的數字電路的。如果您熟悉高等教育中的數字電路的知識的話,本篇目對您來説將很容易理解。
注意:
- 本條目及其子條目用「1/0」或「高電平/低電平」代表紅石「啟動/非啟動」。
- 本條目及其子條目用計量單位「刻」來表示紅石的最小脈衝寬度,1刻=0.1秒=2倍遊戲執行單位週期。在其它非紅石相關條目中可能會出現1刻=0.05秒的情況,詳見刻條目。
- 本條目及其子條目的「同相,反相」與「同向,反向」兩組術語不可混淆。「相(Phase)」代表相位,指邏輯代數中的「相同」與「相反」(例如「真」與「假」互為反相);「向(Direction)」代表方向,意味空間走向(例如「朝東」與「朝西」互為反向)。
- 本篇中的「上邊沿/上升沿」指紅石訊號由「未啟動」到「啟動」的變化瞬間;「下邊沿/下降沿」指紅石訊號由「啟動」到「未啟動」的變化瞬間。
基本概念
在描述能夠建築紅石電路的方塊以及可建的電路種類之前,您需要對一些基本概念有所認知。
紅石元件
- 主條目:紅石元件
紅石元件是在紅石電路裡具有一定使用目的的方塊,大致分為三個大類:
- 電源為整個電路或部分電路提供能量來源,例如紅石火炬、按鈕、拉桿、紅石磚、壓力板等。
- 傳輸線將電能從電路的一部分傳遞到另一部分,例如紅石粉、紅石中繼器、紅石比較器等。
- 電動機械接受電能並作出反應(例如移動、發光等),例如活塞、紅石燈、發射器等。
充能
紅石元件與部分方塊能夠被充能或解除充能。如果説一個方塊被「充能」了,則這個方塊就可以作為電源,能向毗鄰的「用電」方塊供電以使其工作。(「毗鄰」是這樣定義的:一個方塊是正方體,正方體有6個面。也就是説與一個方塊的任意一個面接觸的方塊最多可能有6個,稱之為「與該方塊毗鄰的方塊」)。
當非透明方塊(例如石頭、沙石、泥土等)被電源 (或是中繼器、比較器)充能,我們稱這個方塊被強充能了(這個概念與充能等級不同)。強充能的方塊可以啟動毗鄰的紅石線。絕大多數電源可以強充能自身。
當非透明方塊僅被紅石線充能,我們稱這個方塊被弱充能了。與強充能的唯一區別是,弱充能的方塊無法啟動毗鄰的紅石線。
被充能的方塊(無論強度如何)都可以影響毗鄰的紅石元件。不同的元件產生的反應不同。您可以查看這些元件的具體描述。
充能等級
充能等級(又稱「訊號強度」)為0到15的距離。大多數電源組件均提供滿強度的15級訊號,但少數電源組件能提供不同的訊號強度。
紅石線能向相鄰的紅石線傳導訊號,但每傳導1格,充能等級就降低1。因此,連續的紅石線最遠能將能量傳到15格遠。為了突破這個限制,你可以保持(使用紅石比較器)或是重新加強(使用紅石中繼器)紅石訊號。充能等級只會因為紅石線之間的直接傳導而衰減,不會在紅石線與其他元件或方塊之間衰減。
您可以透過調節處於減法模式或比較模式的紅石比較器以直接控制輸出不同的訊號強度。
紅石(狀態)更新
當電路的某一部分發生狀態的改變,該改變會引起毗鄰方塊的「紅石(狀態)更新」(請勿與Minecraft 1.5正式版的代號「紅石更新」混淆)。紅石更新是個連鎖反應,會計算直到到達已載入區塊的邊界,通常這個過程極為迅速。
單次紅石更新會使得其它紅石元件得到「附近發生變化」的提示,並得到作出相應狀態變化的機會——但並非所有紅石更新都會導致變化。例如新放置的紅石火炬並不會使得旁邊已經被啟動的紅石粉發生狀態改變,這樣,紅石更新在這個方向上的的連鎖反應就會在此處終止。
紅石更新也會在任何臨近方塊被放置、移除或摧毀時發生。
在某些條件下,例如紅石比較器,還會因容器狀態改變而發生紅石更新,如儲物箱內物品的變動等。
下列紅石元件會使得以曼哈頓距離度量的2格以內產生紅石更新:
下列紅石元件會使其毗鄰方塊,以及紅石元件附着方塊的毗鄰方塊產生紅石更新:
下列紅石元件只會使其毗鄰方塊產生紅石更新:
下列方塊狀態變更時不會引發紅石更新或方塊更新(方塊移動或摧毀除外):
紅石刻
紅石刻(Redstone tick)為Minecraft計算紅石機構狀態的最小時間單位,等於0.1秒。紅石火炬,中繼器以及啟動的紅石組件需要1刻或更多時間改變狀態,這就引入了在大型電路中至關重要的延遲。
紅石刻與「遊戲刻」或「方塊刻」不同。當討論紅石電路時,「刻」一詞僅指「紅石刻」。
訊號與脈衝
具有穩定輸出的電路能夠產生訊號——「啟動/非啟動」時稱為「真/假」或「高電平/低電平」。當訊號出現一個較為短暫的非啟動-啟動-非啟動過程,該過程通常被稱為脈衝(或正脈衝。相反的過程被稱為負脈衝)。
非常短的脈衝(1-2刻的)可能會使一些電路組件由於紅石部件的更新順序差異而產生問題。例如紅石火炬、比較器無法響應由中繼器形成的1刻脈衝。
啟動
機械元件的啟動 — 機械元件可被電源元件(如紅石火炬)、充能的方塊、紅石粉、中繼器與比較器以恰當的方式啟動
機械元件(活塞,門,紅石燈等)可被啟動,引發機械元件的反應(如推動方塊,開門,紅石燈點亮等)。
所有機械元件都可以被下列方塊啟動:
- 毗鄰的,處於啟動狀態的電源元件
- 例外:紅石火炬不會啟動其附着的機械元件,活塞不會被其活塞臂朝向的電源元件啟動
- 毗鄰的充能非透明方塊(強充能與弱充能均可)
- 面朝機械元件,且啟動的紅石比較器或紅石中繼器
- 連接指向機械元件(或如果機械元件上表面能夠放置紅石粉也可以),啟動的紅石粉,或毗鄰的點狀紅石粉;毗鄰的,但未指向機械元件的紅石粉不會啟動機械元件。
准聯通方式啟動——活塞也能夠被能夠啟動活塞之上空間的東西啟動。請注意,最左側的夠活塞並未被准聯通啟動,因為紅石粉僅僅是路過了活塞上面的方塊,而不是直接指向該方塊,因此無法啟動該活塞
有些機械元件只會在剛啟動時有所反應(如命令方塊執行命令,掟器與發射器發射物品,音符盒播放一個音符),直到反啟動-啟動之前都不會再有所反應。其它機械元件會在啟動時始終保持狀態,直到反啟動(紅石燈保持點亮,門保持開啟,漏斗保持不工作狀態,活塞保持伸出等)。
部分機械元件可以用其他方式啟動:
- 發射器、掟器與活塞可以被以下方式啟動:即如果一種方式能啟動該機械元件之上毗鄰的「虛擬元件」(因為是「虛擬」的,就算是空氣或透明方塊也無礙),該機械元件也會被啟動。這種情況有時也會表達為:該元件可以被斜上方或上方2格的方塊啟動。右圖即為這類方式的例子。 這種方式被稱為准聯通。
- 雙開門佔地2格,則准聯通可用空間也加倍,即任意一邊門的上方。
充能與啟動
充能與啟動 — 上方的紅石燈既被「啟動」(因此紅石燈點亮),也被「充能」(因此毗鄰中繼器啟動,且下方紅石燈點亮),但下方紅石燈只是被「啟動」,並未被「充能」
對於非透明機械元件(包括命令方塊、掟器、發射器、音符盒與紅石燈),因為非透明方塊可以充能,因此區分它們是被「啟動」還是被「充能」相當重要,也因此我們將「啟動」與「充能」作為兩個獨立的概念進行表述。
- 如果機械元件能夠啟動鄰近的紅石粉,那麼稱其為被充能了。
- 如果機械元件本身能夠作出一定的反應,那麼稱其為被啟動了。
任何充能機械元件的方法也會同時啟動機械元件,但一些啟動方法(如毗鄰被充能的非透明方塊)並不會充能該機械元件。
透明機械元件(門、閘門、活塞、漏斗、路軌、地板門)可被啟動並作出反應,但因為不具備非透明方塊的性質而無法被充能。
電路與機械
兩個術語通常都用於指包含電路組件的結構,但兩者一般還是有明顯區別的:
- 電路(circuit)為處理訊號的結構(生成,修改,組合等)。
- 機械(mechanism)會對環境產生影響(移動方塊,開門,改變光照強度,播放聲音等)。
所有機械均包含紅石組件或電路,但電路本身是不會對環境產生影響的(除了紅石火炬或中繼器在啟動時產生的光,或活塞作為電路組成成分之一時造成的推拉方塊的負效果)。明確這些簡單的概念有利於我們理解紅石電路
電路尺寸
本wiki用寬× 長× 高的格式(電路的外切長方體)描述電路的尺寸,其中包括底板支撐方塊,但不包括輸入/輸出。
描述電路尺寸的另一種方法是忽略最下層支撐電路的那層方塊(例如位於下層紅石粉之下的方塊)。然而這種方法無法區分平面電路與一格高的電路。
通常直接用電路的佔地面積,或是直接用1格寬的電路的長度描述電路尺寸較為方便。
電路特性
根據不同的設計目標,您應當考慮一些常見的特性:
- 1格高電路
- 1格高電路意味着其縱向只有1格,也就是説這種電路不能存在需要下方方塊支撐的元件(例如紅石線、紅石中繼器)。
- 1格寬電路
- 1格寬電路指至少1個橫向尺寸為1.
- 平面電路
- 指的是可以直接建造在地平面,不需要層疊元件(不計方塊支撐紅石元件)。平面電路通常利於初學者理解與學習。
- 隱形電路
- 指的是可以完全隱藏在一堵牆,或地板之下,或天花板之上的電路。這種電路尤其適合活塞門。
- 立即響應電路
- 指一接到輸入訊號,能夠馬上輸出的零延遲電路。
- 靜音電路
- 指不會發出聲音的電路。這種電路不會有活塞、發射器、掟器等會發出響聲的元件。此類電路適合陷阱、安靜環境以及需要減噪的電路的建造。
- 可堆疊電路
- 指同樣的電路可以一個直接疊在另一個上面的電路,疊放之後電路之間不會互相干擾。
- 可並列電路
- 指同樣的電路可以一個直接毗鄰另一個旁邊建造的電路,毗鄰之後電路之間不會互相干擾。
可能還會有其他的設計目標,包括降低子電路延遲、減少昂貴元件消耗(例如比較器)與儘量減小設計尺寸等。
電路類型
雖然建造電路的方法無窮無盡,但特定的電路建造樣式是比較固定的。下面的章節對Minecraft社群中流行的電路進行了分類,每個章節有獨立的主條目用於描述具體的電路設計方案。
某些電路可能只能完成最簡單的控制功能,但你將逐漸能用此類簡單電路的組合成複雜的、能夠滿足機械需要的大型電路。
傳輸電路
訊號傳輸常用術語包括:傳輸類型,縱向傳輸,中繼器與二極管。
- 數字的:僅有0/1概念的傳輸。
- 模擬的:與訊號強度相關的傳輸。
- 二進制的:多條數字線路,每條線路代表一個二進制數的其中一位。
- 一元的:多條數字線路,啟動哪條線路決定傳輸的數據。
向上縱向傳輸
向下縱向傳輸
- 雖然橫向傳輸較為直接,但縱向傳輸有時具有出人意料的適應性與集成性。
- 「二極管」指只允許訊號單向傳輸的電路,通常用於防止電路反向干擾引起的狀態改變或延遲紊亂,也可以用於防止大型電路中的線路彼此串擾。常用的二極管包括紅石中繼器、一格高的螢石與無法向斜下方傳輸訊號的倒置半磚。
- 很多電路已經具有單向性,因為它們的輸出端不會接受輸入訊號,例如以附着在方塊側面的紅石火炬作為輸出的電路。
邏輯電路
有時,你需要判斷輸入訊號,經過一定的算法產生一個輸出。這類電路即為人們耳熟能詳的邏輯門(「門」只讓滿足「邏輯」的訊號輸出)。
| 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時,輸出才會為1。
- 非門(反相器)
- 使得輸入訊號反相(例如輸入為0,輸出為1;輸入為1,輸出為0)。
- 非門(即「反相器」)的輸入與輸出相反。
- 或門在任意一個輸入為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)為能夠對方塊狀態改變產生反應的電路(例如石頭被開採,水變成冰,南瓜長出等一切涉及方塊的數據變更的行為)。
愛好者們還有很多更複雜的電路方案。
建造電路
計劃
建造紅石電路的第一步是確定電路能做些什麼。
- 應該在哪裏控制整個電路?如何控制?
- 電路是由玩家控制,生物移動控制或是其它控制方式?
- 電路能夠實現什麼樣的功能?
- 照明、推動方塊/生物、識別物品或其他?
- 訊號如何從控制端傳向機械?
- 需要將多個來源產生的訊號組合到一起嗎?
建造
建造電路時使用特定的方塊組合是個不錯的習慣,這樣你當修建其他的工程時,看到這些方塊你就能意識到不能再繼續挖了。常見的選擇有石磚、雪與羊毛(不同顏色的羊毛有利於你自己區分電路的不同部分)。
當在水或岩漿邊上建造電路時要特別小心。很多電路組件會在液體流過時被破壞。
建造電路以引爆TNT(陷阱或大炮)時要格外小心。建造中的電路可能會意外觸發TNT,因此強烈建議最後再放置TNT。
解決問題
當電路出問題時,仔細檢查,嘗試尋找出問題的來源。
- 你是否想從一個弱充能方塊引出電能?也許你需要紅石中繼器使其強充能,或者用紅石中繼器引出電能。
- 你是否想讓電能穿過一個透明方塊?用非透明方塊代替它,或者繞道而行。
- 你是否無意中建造了一個短路電路,使得本來應當啟動的紅石火炬燃盡了?修正短路電路,並更新紅石火炬的狀態。
- 本不該啟動的電路部分是否錯誤啟動了?也許你不小心把不同部分的線路之間連了起來。
- 活塞、發射器或掟器的啟動方法是否錯誤?
精煉
電路正常工作後,考慮一下是否能夠提高電路的效能。
- 你能讓電路反應更快(延遲更短)嗎?
- 減少訊號傳輸中不必要的元件數量,如會拖延時間的中繼器.
- 你能讓電路更小嗎?
- 你能使用更少的方塊嗎?
- 你能縮短紅石線的長度嗎?
- 電路在極短的脈衝下依然能正常工作嗎?
- 電路在頻繁地啟動/非啟動交替下依然能正常工作嗎?
- Minecraft新版本的特性是否有助於提高電路的效率?(如1.5的紅石比較器等)
- 電路雜訊能小一些嗎?
- 活塞伸縮、紅石火炬熄滅等多數元件在開關時會發出聲音。