第一百二十四章 JSON的格式元素
我們在第十七章時講到了JSON里可以使用color(顏色)以及bold(粗體)、 italic(斜體)、 underlined(下劃線)、 strikethrough(刪除線)、obfuscated(亂碼)元素來對文本進行修飾。而這些,都叫做“格式”元素,因為通過它們可以修飾或更改文本的格式。
比如:
{“text“:“作者被作者擊敗了“,“color“:“red“}
在游戲里運行就會輸出紅色的“作者被作者擊敗了”。
而{“text“:“額“,“italic“:“true“,“color“:“yellow“}則會輸出斜體黃色字:額。
這些我們在那一章都講過了,這里就不再敘述了。
那么JSON的格式元素只有這些嗎?肯定不止。
只不過再講之前,作者還要補充兩點:
上面的bold、italic、underlined、striketrough、obfuscated都是布爾值,你可以加上引號,但其實不加引號也是可以的,比如上面的{“text“:“額“,“italic“:“true“,“color“:“yellow“}就可以寫成{“text“:“額“,“italic“:true,“color“:“yellow“},在命令方塊里運行還是一樣的。當然作者推薦布爾值還是不要加上引號,雖然現(xiàn)在JSON的格式并沒有那么嚴,可能以后就嚴起來了。
而且,你知道嗎,在1.16版本,color已經(jīng)不止17種顏色了。
為什么?因為在1.16版本,你已經(jīng)可以這樣子了:
{“text“:“看這個顏色“,“color“:“#1F2712“}
這是什么?這是16進制顏色代碼,是rgb顏色化成16進制的樣子,常用于網(wǎng)頁中。
具體的話你可以去百度百科上看看。
好的,接下來我們來看一下剩下的這些格式元素吧,其實這里不應該用“這些”的?!?p> 為什么?因為只剩下了一個,這個是JAVA1.16新添加的:
font
這是什么作用呢?
font的作用就是可以更改字體!
比如我們的Minecraft默認字體就是:minecraft:default,其中minecraft為命名空間。填入font:
{“text“:“字體“,“font“:“minecraft:default“}
然后運行:
字體
嗯,很普通是不是?因為我們選擇的是Minecraft的默認字體。
那么font除了選擇自家的字體,還可以選擇其他的字體嗎?
可以!你只需要找到一個帶有其他字體的1.16材質包,準確來說是1.16資源包,然后裝上。你可以打開這個資源包看一下它的命名空間,順便看一下它的字體文件名,assets文件里面的第一層那些文件夾名就是命名空間,和mod文件是一樣的。字體文件存儲在命名空間下面的font文件夾里面,如果材質包有自帶字體的話就有font文件夾,否則沒有的話你就只能再去找一個。
或者是右轉去問問百度貼吧的吧友,然后水貼兩小時,最后啥也沒獲得。
哦對了,還是有獲得的:
經(jīng)驗+3,豈不美哉?——[三國]王司徒
(呃,只寫了700多,不行啊,那么再加一點料吧)
我們知道,在基巖版,你是可以使用§來更改文本的顏色和格式的,那么在JAVA版行不行呢?
當然行。
但是你無法在聊天來輸入§,這是為什么?因為§在JAVA版是屬于非法字符的。如果你在服務器的聊天框輸入,你甚至還有可能因為非法輸入而被踢出服務器,當然大多數(shù)情況下聊天欄并不會顯示任何東西,因為游戲識別不出來。
而你卻可以在JAVA版的書與筆中輸入,只不過并不會顯示,但是當你再輸入一個數(shù)字或字母時,只要符合§的格式,就可以成功被游戲識別出來,你的文字顏色也會同時被改變。
而在游戲外,用的地方就很多了。你就可以在資源包、存檔、mod名等地方使用§了,比如你可以修改資源包的名稱,在其最開始的地方添加一個“§e”,這樣子當你再次打開游戲,資源包的名稱就全變成黃色的了。
而存檔名就比較麻煩,你需要一個NBT修改器,如NBTExplorer,然后打開要修改的存檔文件夾里的level.dat文件,找到LevelName(世界名稱)標簽,你就可以自由的修改存檔名以及樣式了。
同樣的邏輯也可以用于服務器,比如服務器的簡介以及世界名。只不過簡介的話雖然可以直接在server.properties里修改motd屬性,比如:
motd =§e Look!This a Minecraft Sever!
但是當你打開Minecraft,想要查看成果時,你就會發(fā)現(xiàn)服務器的簡介變成了:
? Look!This a Minecraft Sever!
雖然成功變成了黃色,但是前面竟然多了一個灰色的“?”!
這是為什么?因為服務器在讀取配置文件時,不知道你寫的這個§到底是什么鬼東西,于是只好將其先轉化成:\u00C2\u00A7,即?§,簡介就變成了:
\u00C2\u00A7e Look!This a Minecraft Sever!
然后到了客戶端時,客戶端讀取時發(fā)現(xiàn)“唉,這里竟然有一個§e”,于是就自動轉化后面的字符為黃色,這就變成了你看見的:
? Look!This a Minecraft Sever!
如果你此時再次打開配置文件,你就會發(fā)現(xiàn)服務器自動轉化簡介成了:
\u00C2\u00A7e Look\!This a Minecraft Sever\!
其中兩個在感嘆號前面的\還好理解,這就是我們上一章說過的轉義符號。而我們的:
§e
就被轉換成了:
\u00C2\u00A7e
其中,這種\u00A7代碼叫做Unicode,即“統(tǒng)一碼”,從其開頭的\u就可以看出來。后面的00A7則是§的統(tǒng)一碼編號。而客戶端讀取的時候就會自動轉換統(tǒng)一碼。
所以,我們可以再輸入的時候直接輸入§的統(tǒng)一碼,即:\u00A7,然后在后面加上其他的數(shù)字或字母,這樣子就不會出現(xiàn)多余的?了:
motd =\u00A7e Look\!This a Minecraft Sever\!
然后客戶端就顯示正常了:
Look!This a Minecraft Sever!
王五正在電腦上的QQ和他最近認識的大佬聊天。
17:25
王五:大佬,額這個分節(jié)符該怎么輸入???
劉一(王五認識的大佬):在Windows,可以按Alt+NUMPAD0+NUMPAD1+NUMPAD6+NUMPAD7;在macOS,按下Option+6;在Linux,按下Compose+S+O
劉一:就可以了。
王五:這個NUMPAD2這些是什么鍵?
劉一:哦,這個就是你鍵盤右邊的那個小鍵盤,后面的數(shù)字對應著小鍵盤上相應的鍵,比如NUMPAD0就是按住小鍵盤上的0。
王五:也就是說我打出分節(jié)符只需要按住
王五:Alt+0167就可以嘍
劉一:沒錯,就是這樣的,只不過數(shù)字是按順序按,并不需要按住數(shù)字,Alt才需要按住。
王五:哦,那我試試。
王五:§,我的天!
劉一:怎么樣?
王五:OHHHHHHHHHHH!
[叭]
王五興奮地合上了電腦,然后拿出了書與筆,嘴里念著:
“Alt加0167,然后1,接著輸入藍色,嗯,完美?!?p> 然后他帶著這本書走出了基地。
[過了一會兒]
“我的天終于回來了,天殺的,那王五竟然坑我!”張三突然出現(xiàn)在床旁邊,“媽的,要是勞資沒點水平,那就差點在末地喪命了!”
張三環(huán)顧了一下他的小房間,這時他覺得這個橡木木板做成的小房子是如此的溫馨,那擺在窗臺的花盆是如此的美麗,那停止運作的刷物機是如此的.......
然后他看向了手中那整個服務器唯一的龍蛋,以及他從生死的懸崖旁邊獲得的龍頭和鞘翅,忽然間就笑了:“原來這才是王五的真正意思啊。”
“我們馬上就要成為全服最牛逼的一群玩家了!OHHHHHHHHHHHH!”