第四十章 記分板是什么鬼
相信很多人都玩過電子游戲。
就算你從來都沒玩過電子游戲,只要你用過計(jì)算機(jī),你就會(huì)發(fā)現(xiàn)在計(jì)算機(jī)上有一些數(shù)值會(huì)一直變化。比如時(shí)間、銀行卡存款、股票價(jià)格等等。
像這種會(huì)變的數(shù)值,有一個(gè)專門的名稱:變量。
相對(duì)應(yīng)的,還有不會(huì)變化的數(shù)值,也有一個(gè)專門的名稱:常量。
在Minecraft中,你常常會(huì)看到各種變量——經(jīng)驗(yàn)值、物品數(shù)量、狀態(tài)效果等級(jí)等等。不難發(fā)現(xiàn),變量的用途很廣,如果能夠在指令中使用變量豈不美哉?
在之前的章節(jié)中,我們學(xué)會(huì)了如何使用/xp指令更改經(jīng)驗(yàn)值。剛才有提到經(jīng)驗(yàn)值就是個(gè)變量,加上經(jīng)驗(yàn)值可以用于指令中,這不美哉?
但是經(jīng)驗(yàn)值只是一項(xiàng)變量。如果我們想要?jiǎng)?chuàng)建一個(gè)屬于自己的變量,那該怎么辦呢?
沒有法子。但是Mojang給我們提供了另外一個(gè)東西:記分板(Scoreboard)(又稱“計(jì)分板”)。
什么是記分板?許多網(wǎng)頁傳奇常常為了刺激追求名利的玩家氪金,搞了許多排行榜?!皯?zhàn)力榜”就是個(gè)典型的例子。在戰(zhàn)力榜中,每個(gè)玩家的“戰(zhàn)力”依靠某種順序排列,一般是從大到小。同時(shí),每個(gè)玩家的戰(zhàn)力值都是實(shí)時(shí)變化的,也就是說“戰(zhàn)力”是一個(gè)變量。
像這樣的每個(gè)玩家都綁定了一項(xiàng)自己的變量,這個(gè)變量又靠某種順序排列的排行榜,在Minecraft中我們就可以稱呼其為:“計(jì)分項(xiàng)”(又稱記分項(xiàng))。而用于承載計(jì)分項(xiàng)的東西我們就叫做“記分板”。
每個(gè)計(jì)分項(xiàng)都有以下幾個(gè)信息:
名稱(name)——該計(jì)分項(xiàng)的名稱,用于指令中的調(diào)用,不可重名。在Minecraft Java1.18更新之前,計(jì)分項(xiàng)的名稱不能超過16個(gè)字符?;鶐r版(最新版本)無限制。
顯示名稱(display name)——在Java版中是一串JSON文本,在基巖版中是一串普通文本。在一個(gè)計(jì)分項(xiàng)中不一定有這一個(gè)信息。主要用于游戲界面中名稱的顯示。在Minecraft Java1.18更新之前,顯示名稱不能超過32個(gè)字符。基巖版(最新版本)無限制。(更簡單易懂的說法就是,名稱就類似于你的QQ號(hào)碼,一經(jīng)注冊(cè)不可更改。顯示名稱則類似于你QQ的昵稱,可以隨意更改)
準(zhǔn)則(criterion [復(fù)數(shù):criteria])——決定了計(jì)分項(xiàng)具體要跟蹤的信息。比如我創(chuàng)建了一個(gè)準(zhǔn)則是“deathCount”(死亡次數(shù))的計(jì)分項(xiàng),這個(gè)計(jì)分項(xiàng)自創(chuàng)建就會(huì)追蹤每個(gè)玩家的死亡次數(shù),然后列出一張“死亡榜”。最基本的計(jì)分項(xiàng)準(zhǔn)則是dummy,即只能通過指令改變每個(gè)實(shí)體持有的分?jǐn)?shù)的準(zhǔn)則。準(zhǔn)則有很多,在接下來的章節(jié)中我們會(huì)詳細(xì)了解。
分?jǐn)?shù)持有者(score holder)——正如其名,就是指計(jì)分項(xiàng)中每個(gè)變量(分?jǐn)?shù))所綁定的玩家或非玩家實(shí)體。
分?jǐn)?shù)(score)——也就是變量。只不過相比普通的變量來說,這兒的變量是和玩家或非玩家實(shí)體綁定的,所以才叫“分?jǐn)?shù)”。
舉個(gè)簡單的例子:
假設(shè)張三創(chuàng)建了一個(gè)名為“金錢”,顯示名稱也為“金錢”,準(zhǔn)則為dummy的計(jì)分項(xiàng)。此時(shí)這個(gè)計(jì)分項(xiàng)由于剛創(chuàng)建里面沒有任何東西,張三就使用指令給一名叫做“李四”的玩家在該計(jì)分項(xiàng)上添加了1分。由于“李四”并未在該計(jì)分項(xiàng)內(nèi)擁有任何數(shù)據(jù),于是游戲就幫助李四注冊(cè)了一下這個(gè)計(jì)分項(xiàng),并將李四的分?jǐn)?shù)設(shè)定為0(初始值)+1。最終,這項(xiàng)計(jì)分項(xiàng)中就有一項(xiàng)“李四”的分?jǐn)?shù),并且其值為1。
現(xiàn)在你已經(jīng)大概了解記分板是什么東西了吧?記分板有許多內(nèi)容值得研究,下一章我們將會(huì)開始了解如何管理一個(gè)計(jì)分項(xiàng)。