點這里返回總目錄
基礎(chǔ)知識:
MV的轉(zhuǎn)義字符之一\c[n]這個是改變字體顏色,n為顏色的代號刮刑,mv原本的顏色是在Window.png中的。如果對代碼很苦手的話,也可以改Window.png苹丸〖八耄總之實現(xiàn)的方法不止一個峰弹,有很多很多。
JavaScript 數(shù)據(jù)類型:string公壤,array扇单,number 本次遇到這三個數(shù)據(jù)類型商模。
string是文本,直接定義時加""或''蜘澜,總之就是要用引號包起來施流,引號也可以嵌套引號,用雙引號還是單引號就根據(jù)具體情況兼都,比如定義文本:the words "I love you"嫂沉。可以這么定義:var str = 'the words "I love you"'
應(yīng)該只有英語語境的人會考慮這個問題吧扮碧,用的中文“”是完全沒這個問題的趟章。
array是數(shù)組的意思,直接定義時使用[xx,xx,xx]的形式慎王,xx是數(shù)組中的元素蚓土。調(diào)用單獨的元素可以使用數(shù)組下標(biāo),注意數(shù)組的下標(biāo)是從0開始的赖淤。
例如 var arr =[1,2,3]那么arr[2]就是3了蜀漆。
number是數(shù)字的意思,默認(rèn)10進制咱旱,跟我們的習(xí)慣一樣确丢。在MV的原方法里,有轉(zhuǎn)換為16進制的方法吐限,我們在這個需求中也借用到了鲜侥。
JavaScript 語法:
return 此方法返回return后的變量或方法,需注意的是诸典,遇到return就結(jié)束這個方法描函,不會繼續(xù)執(zhí)行方法內(nèi)的后續(xù)操作。
雖然本次涉及了其他語法,但是最關(guān)鍵的是return舀寓,因此先只介紹return胆数。
本需求的主要思維:替代return值。
基本上都是MV的原方法直接拿來用了互墓,我們的改造方式就是用自己定義的值來替代原返回值必尼。
1、寫下需求
這個需求相對簡單篡撵。
取代Window.png規(guī)定的顏色胰伍,自定義數(shù)字對應(yīng)的顏色。
為了確認(rèn)需求酸休,可以使用畫板骂租,SAI等工具,先調(diào)一下顏色斑司,看看適不適合渗饮。
然后用習(xí)慣工具,查看每個顏色的RGB參數(shù)宿刮。
2互站、查看MV原方法
在MV的原方法的關(guān)鍵是讀取Window_Base.prototype.textColor = function(n)的方法所返回值。
既然是返回值僵缺,那么我們可以替代這個值胡桃。
如果不熟練的話,在這個return語句之前加一個console.log磕潮,就可以看到原本MV返回的值是什么翠胰。
等我們對JavaScript和MV都熟悉了以后,可以根據(jù)語句計算一下結(jié)果自脯。
這里返回的是String數(shù)據(jù)類型之景,是16進制的顏色。也就是HTML常用的那種膏潮。
而我們在第1步需求里锻狗,得到的是RGB顏色。
這里有2個選擇焕参,其一轻纪,我們也改為HTML顏色,其二叠纷,我們繼續(xù)利用MV的原方法刻帚。
如果是其一的話,我們可以直接寫"#FAEBD7","FF9999"等等讲岁。
其二我擂,我們可以借用MV自帶的方法Bitmap.prototype.getPixel這個方法后半部分,就是在轉(zhuǎn)成HTML顏色代碼缓艳。
然后放在一個全局?jǐn)?shù)組里校摩,如果不是全局?jǐn)?shù)組,可以放在特定的window下面阶淘,但是每一個window都需要有點麻煩衙吩。
所以還是放全局?jǐn)?shù)組。
我選的是第二個溪窒,根據(jù)RGB來放置數(shù)組坤塞。
3、改寫MV原方法
開始替代原值的改寫澈蚌。
Window_Base.prototype.textColor = function(n) {
var result = '#';
var color =ReserveColor[n];
for (var i = 0; i < color.length; i++) {
result += color[i].toString(16).padZero(2);
};
return result;
};
4摹芙、測試
測試很重要,之前數(shù)組少了一個逗號宛瞄,然后導(dǎo)致后面的顏色全部前移了一位浮禾。經(jīng)過測試才發(fā)現(xiàn)。
打開MV份汗,用事件來測試盈电。
舉例:
\c[17] 17號色 \c[22]22號色 \c[38]38號色 \c[45]45號色 \c[0]0號色