UU看書

第五章 座標

天才一秒記住【UU看書】地址:www.uukanshu.co

你建立了你人生第一個生存存檔,打算一直玩下去。進入遊戲,你發現你出生在了一個大草原,太陽剛剛從地平線升起,陽光照進遠處炊煙裊裊的村莊裡,村民們都開門前去上班。

很快,你擼了一棵樹,用泥土搭建了一個房子。但時間過得很快,10分鐘的白天很快就過去。當太陽的最後一抹光消失在天邊,你突然意識到——我的泥土房子呢

此時你已經跑到了一個積雪的樺樹林裡,周圍看起來沒有一絲人煙。左手邊有一座大雪山,雪山山腰上有一個礦洞。往前走是一個懸崖,從懸崖上眺望,只能看到無邊無際的樹林和緩緩升起的圓月。

你往回跑,但殭屍骷髏已經開始生成。它們在你背後窮追不捨,你加速奔跑,但很快飢餓值只剩三個雞腿——你跑不動了。

空中緩緩飄落下點點雪花,你此時已經走投無路。望著正朝你緩緩走來的殭屍和在不遠處正拉弓的骷髏,你突然心生一計——你朝著腳底挖了3格,然後把頭上用泥土填掉,這太完美了

時間不知道過了多久。當你挖開泥土的時候,清晨的第一縷陽光照進了洞中。你剛想歡呼,但隨即而來的箭清零了你最後一滴血。死前你看到了這隻箭的主人——一個躲在樺樹下的骷髏。

現在我們來研究一下你為什麼會這樣。答案其實非常的簡單——你迷路了。

為什麼你迷路了呢?因為你沒有記錄你房子所在的位置。

那麼該怎麼確定你房子的位置呢?

我們知道,現實世界中,主觀的確定位置方式是“上下左右前後”,客觀的確定位置方式是“東南西北”。在地理課上,你還會學到目前為止最常用的確定位置的方式——經度和緯度。

經度和緯度為什麼可以確定位置呢?其實,經度和緯度的本質其實是球面座標系。

我們平常接觸到的座標系是平面直角座標系。但不管是平面直角座標系還是球面座標系,它們都是在一個面上的座標系,即二維座標系。二維座標系中只有兩個數軸:x軸和y軸,它們互相垂直,且共用一個原點。平面座標系的兩個數軸一同使用可以表示平面上任何一個點。

這就是一種確認位置的方式。

現在我們可以嘗試使用平面直角座標系來確定你在MC中的位置。我們先設定一個原點,比如原點就在你房子,然後設定一個單位長度就是一個方塊的邊長,X和Y軸互相垂直且平行於每個方塊的邊緣,整個座標系所處的平面平行於Minecraft大陸。此時你就會發現,你死的地方的座標是:

716,27

這太令人震驚了。如果你早一點知道的話,或許就不會跑那麼遠,也不會找不到回去的路了。

但或許我們並不需要這麼麻煩去自建一個座標系。因為MC本身就自帶一個座標系。這個座標系有三個軸。一般來說,有三個軸的座標系,是三維座標系(專業說法為空間座標系)。在三維座標系中,三個軸分別是X、Y和Z。Minecraft座標採用的是三維座標系中的“空間直角座標系”。空間直角座標系通俗的來說就是在平面直角座標系上加入了一個垂直於平面的Z軸,用於確定點所在的高度(或寬度)。比如,在經度和緯度已經確定的情況下,再加上一個海拔高度,就可以確定你是在天上坐飛機還是在地下采礦了。

MC自帶座標的三個軸表示的分別是:

X座標——東()西()方向

Y座標——海拔高度

Z座標——南()北()方向

需要注意的是,在真正的空間直角座標系中,高度可能是Y軸,也可能是Z軸。

似乎我們一般用X和Z軸就可以了。確定高度的Y軸,除了確定是在天上地下,還有啥用呢?

你如果到處跑來跑去,會發現主世界的海平面都是在Y64的地方(JAVA早期版本是Y63);翻翻論壇,你會發現大家都在說鑽石礦在Y12層挖鑽石最好挖;挖礦時掉進岩漿,你會發現Y11層及以下的礦洞都被岩漿填滿。(聽說117最新快照版本世界最下面已經到了Y64的地方了)

每個方塊、實體都可以用座標精準定位。而且,Minecraft的座標可以精確到小數點後面很多位。

說了這麼多,那麼如何檢視座標呢?Java版需要按下F3(或FnF3)開啟除錯面板,基岩版可以在設定介面找到“顯示座標”,開啟即可,只不過基岩版需要管理員許可權,Java版所有玩家都可以。

然後你就會發現你的泥土房子的座標是:

(62,68,21)

但座標就只有這一個用途嗎?其實不然。

在指令方面,座標可以確定指令執行的位置、放置方塊的地點、傳送的地點、生成實體的位置等等。

MC自帶的座標我們已經瞭解得差不多了。但如果我們在此座標的基礎上,繼續使用剛才我們以房子為原點的座標並將其改善為類似於MC的空間座標系會怎麼樣?

其實不會怎麼樣,只是會上這本書。

但如果你不以房子為原點,而是以你自己為原點會怎麼樣?

你會發現,由於你會移動,導致以你為原點的三個座標軸也會移動,最後導致以這個座標標記的房子,其座標的三個數值也會變化。

但你有沒有發現,不管你怎麼移動,你客觀上的南面十米還是南面十米,並不會因為你朝南面走十米就變成南面零米了。

在MC中,這種座標有一個特殊的名字,叫做“相對座標”。

在相對座標中,雖然東南西北仍然是固定的,但原點卻不是固定的。就比如上面的“南面十米”,你朝南面走十米,你南面十米的方塊也就變化了。

那如何表示“南面十米”呢?

10就可以了。

表示相對座標,需要在我們剛才瞭解的MC自帶座標的基礎上,再在數字前面加上“”,如果數字為0直接把0省略。比如往東6米,再往下1米,最後往北12米,就可以表示為:

6112

注意了,順序不能亂排,目前的這兩個座標都是按照XYZ的順序排的。而且,XYZ三個值要用空格分開(基岩版沒那麼嚴格,JAVA版不用空格分開會報錯)。

相對座標是這樣的。但既然這個座標叫相對座標,那麼之前我們瞭解得那個座標叫啥呢?

絕對座標

相對座標和絕對座標通常情況下是可以配合使用的,因為不管你怎麼動,XYZ三個軸還是能跟絕對座標的XYZ對上的。舉個例子:

37152——X37的地點,再以你的絕對Y座標往上15格,然後再以你的絕對Z座標往北2格的方塊。

如你所見,配合的時候,實際上就是將玩家的絕對座標XYZ值提取出來,再加上波浪號後面的數字。直觀的表現為我們把你的絕對XYZ座標值分別設定為x、y和z,然後代入:

37,y15,z2

就是這麼個東西。

(注:相對座標的原點實際是因指令而異的,在大部分情況下原點即是指令執行的位置,但也有特殊的情況,如Java113版本之前的tp指令。)

如遇章節錯誤,請點選報錯(無需登陸)

新書推薦

全民遠征:副職也能帶贏全人類 傳奇幽影 惡魔系統之坑坑更有愛 訓練嗎朋友,玩命的那種 方舟日記 林夕煜宸妖夫在上免費閱讀全文 無限入侵,一人一刀滅一界