第五十九章 更深入地了解坐標(biāo)
在此之前,我們已經(jīng)學(xué)習(xí)了絕對(duì)坐標(biāo)和相對(duì)坐標(biāo)。
你有沒有發(fā)現(xiàn),很多事情往往都與“三”這個(gè)數(shù)字掛鉤,因此Minecraft中是否還有第三種坐標(biāo)呢?
在解答問題之前,我們先來看看2022年Minecraft新春會(huì)。
在Minecraft新春會(huì)中,很多紅石音樂節(jié)目往往會(huì)出現(xiàn)由粒子效果畫出的圓形?,F(xiàn)在讓我們來思考一下,圓形是怎么做出來的?
我們要畫一個(gè)圓,就得用到圓規(guī)。使用圓規(guī)畫圓時(shí),首先得確定圓心,然后確定半徑,最后在保證圓心不偏移的情況下在紙上旋轉(zhuǎn)圓規(guī)一圈,就成功畫出了一個(gè)圓。
在Minecraft中畫圓也同理。首先需要確定圓心,也就是在圓心處固定好一個(gè)盔甲架,然后確定半徑.......等等,半徑怎么確定?
這里,我們就要用到Minecraft中的第三種坐標(biāo):局部坐標(biāo)(也稱本地坐標(biāo))
局部坐標(biāo)使用“^”符號(hào),寫法跟相對(duì)坐標(biāo)一樣,都是數(shù)字跟在符號(hào)后面。比如“^2 ^3 ^-3”。
雖然寫法和相對(duì)坐標(biāo)一樣,但它相較于相對(duì)坐標(biāo)有許多不同之處。
局部坐標(biāo)雖然單位長(zhǎng)度仍然是一個(gè)方塊的棱長(zhǎng),但它的三個(gè)坐標(biāo)軸在大多數(shù)情況下并不能與絕對(duì)坐標(biāo)的三個(gè)軸重合,因此它不能與絕對(duì)坐標(biāo)還有相對(duì)坐標(biāo)一起使用。
而且,局部坐標(biāo)的原點(diǎn)也很特殊——它的原點(diǎn)是執(zhí)行者的頭!
某玩家:“頭作為原點(diǎn)有啥好判定的?不就是上下前后左右嘛?!?p> 哎,這位玩家竟然說對(duì)了,局部坐標(biāo)說白了真的就是“上下前后左右空間直角坐標(biāo)系”!在局部坐標(biāo)中,XYZ軸分別代表:
X——左(+)右(-)方向
Y——上(+)下(-)方向
Z——前(+)后(-)方向
比如上面的“^2 ^3 ^-3”,就代表了以執(zhí)行者的頭為原點(diǎn),向左偏移2格,再向上偏移3格,最后向后方偏移3格的點(diǎn)(注意,是主觀上的左右前后上下)。
因?yàn)榫植孔鴺?biāo)脫離了Minecraft的絕對(duì)坐標(biāo)還有相對(duì)坐標(biāo),所以局部坐標(biāo)非常有用且在很多方面都不可替代。就比如上面我們要確認(rèn)半徑,就得用且只能用局部坐標(biāo)。
有了局部坐標(biāo)后,我們?cè)贛inecraft中畫圓也就很簡(jiǎn)單了。接下來我們來實(shí)踐嘗試一下(注:以下指令的版本均是Java1.13.2):
?、偈褂谩?summon minecraft:armor_stand 88 10 125 {NoGravity:1,CustomName:“\“A\““,Invulnerable:1,CustomNameVisible:1,Invisible:1}”在(88,10,125)處生成一個(gè)叫做A的隱形的不會(huì)掉落的不會(huì)受到傷害的盔甲架。
?、诜胖靡粋€(gè)重復(fù)的命令方塊,在里面填上“/execute as @e[name=A] at @s run particle dust 1 0 0 2 ^,^,^10 0 0 0 0 5”(那邊的逗號(hào)是用于區(qū)分參數(shù)的,請(qǐng)忽略)。這條指令的意思是:將執(zhí)行者和執(zhí)行基準(zhǔn)點(diǎn)設(shè)為A和A所處的位置,并執(zhí)行particle指令,在盔甲架的正前方10格處生成數(shù)量為5且速度為0的紅色煙霧。
?、墼俜胖靡粋€(gè)重復(fù)的命令方塊,填上“/execute at @e[name=A] run tp @e[name=A]~~~~2 ~”,它的作用是讓盔甲架水平順時(shí)針旋轉(zhuǎn)2度。
?、苓\(yùn)行上面的兩個(gè)重復(fù)命令方塊,你會(huì)驚奇地發(fā)現(xiàn)紅色煙霧開始轉(zhuǎn)動(dòng)了!
Mnecraft新春會(huì)的那些粒子效果固然會(huì)比這復(fù)雜許多,但原理一樣,差別僅在于Minecraft新春會(huì)的指令規(guī)模更大,且更復(fù)雜(因?yàn)樾枰獓?yán)格控制路徑、速度和時(shí)間,與音樂搭配好)。
對(duì)了,在Minecraft中快速生成圓環(huán)、圓盤甚至是圓柱也是同樣的道理。
現(xiàn)在你會(huì)局部坐標(biāo)了嗎?
本章到此為止。
(注:在Java1.13之前的版本,指令中無法使用局部坐標(biāo)。)
歷史
Java
1.13——加入了局部坐標(biāo)
基巖版
?——加入了局部坐標(biāo)