點這里返回總目錄
題記
因為這是第一個分析的插件剂碴,所以寫的細致了一些咸这。
以后可能就會粗略一些痒蓬。
這個插件的更新可以在作者Triacontane的github上得到。
面對對象的JS
在一切開始之前贪惹,我們要知道的是JS中的對象苏章。
JS中的所有事物都是對象:字符串、數(shù)值馍乙、數(shù)組布近、函數(shù),以及自定義的對象{}丝格。
對象擁有兩個東東(詞窮了),一個是屬性棵譬,一個是方法显蝌。
objectName.propertyName//屬性
objectName.methodName()//方法
關(guān)于類,大概10年前订咸,樓主學(xué)過一點C++曼尊,里面有類的概念,是相似方法的對象集合的抽象脏嚷。
但是JS里骆撇,并沒有類或接口的概念,不能直接定義抽象的類父叙。
但是可以通過new方法神郊,來創(chuàng)造實例。
目前樓主只知道以上知識趾唱,并且覺得以上知識看上去不起眼涌乳,但還是很重要,因此先放在前面甜癞。
AccumulateState累積型狀態(tài)PartB
大致的結(jié)構(gòu)
Triacontane的AccumulateState.js分為3個大塊:
- JS文件注釋夕晓。
- 能被MV插件管理器所識別的插件信息注釋。
- JS代碼部分悠咱。
JS文件注釋
這里的注釋我指的是//開頭的內(nèi)容蒸辆。實際上后面的也是JS注釋征炼。但是那個和這里在MV里有區(qū)別。
應(yīng)該是作者寫給自己或者單獨打開JS文件的人看的躬贡。從MV的插件管理器里是看不到這部分柒室。
從這里能夠看到Triacontane的一些信息:文件名,授權(quán)方式逗宜,更新履歷雄右,聯(lián)系方式等。
這個部分并不是必須的纺讲,有些插件就沒有這部分擂仍。但是如果有寫文件名的習(xí)慣,對于別人修改來說是有好處的熬甚。
能被MV插件管理器所識別的插件信息注釋
/*:
開頭逢渔,到*/
為止,這部分的注釋能夠被MV插件管理器所識別,在這里用戶輸入的數(shù)據(jù)乡括,會被寫進plugin.js里肃廓。
管理器識別有既定的模式,不防新建一個空的js文件诲泌,然后試試:
因為參數(shù)比較復(fù)雜盲赊,先說一般只出現(xiàn)一次的。
- @plugindesc 插件描述 (一般來說僅出現(xiàn)一次)
- @author 作者名 (一般來說僅出現(xiàn)一次)
- @help 幫助內(nèi)容 (一般來說僅出現(xiàn)一次)
所以一個簡單的敷扫,能被插件管理器識別的JS插件大致有如下代碼:
//文件名.js
/*:
* @plugindesc 這是一個MV插件
* @author 地球上的某個人
* @help 幫助內(nèi)容哀蘑。
*/
關(guān)于插件的參數(shù)
其實覺得插件參數(shù),基本上都是給別人用的葵第,如果是給自己用绘迁,直接寫在js里的話,可以省一些代碼卒密。覺得js找起來太亂了缀台,還可以寫在json里。
但是基本上插件都有參數(shù)設(shè)置哮奇。是因為考慮到給別人使用的情況膛腐。
如果特定為某個游戲制作插件,可以不設(shè)置插件的參數(shù)屏镊。
比較復(fù)雜的參數(shù)還可以是結(jié)構(gòu)式依疼,并且嵌套多層。
- @param 參數(shù)名而芥。(可出現(xiàn)多次)
- @parent 父類或者直接說是分類 當(dāng)有很多參數(shù)的時候律罢,可以用這個在管理器中產(chǎn)生折疊效果。
- @desc 參數(shù)的描述(對應(yīng)每一個param)
- @default 該參數(shù)的默認值(對應(yīng)每一個param)
- @require 需要的數(shù)量(對應(yīng)每一個param,不一定出現(xiàn)误辑,應(yīng)該說這個并不常見)
- @type 要求輸入的類型(常見的沧踏,比較簡單的有boolean,number等巾钉,不一定出現(xiàn))
- @type struct<數(shù)據(jù)結(jié)構(gòu)> (這個功能很強翘狱,讓使用者能夠更清晰地操縱參數(shù)。不過相應(yīng)的砰苍,要寫多一個/*struct開頭的定義潦匈,這個插件里沒用到,而且較為復(fù)雜赚导,還是以后見到再看吧茬缩。)
- @dir 文件夾前綴(對應(yīng)的往往是@type file)
- @min 最小值(前面的是@type number 不一定出現(xiàn))
- @max 最大值(前面的是@type number 不一定出現(xiàn))