[MV插件实例]数字对应颜色修改——思路:替代

2019-08-10  本文已影响0人  燃鲤Kuma_苦猫甜鱼

点这里返回总目录

基础知识:

MV的转义字符之一\c[n]这个是改变字体颜色,n为颜色的代号,mv原本的颜色是在Window.png中的。如果对代码很苦手的话,也可以改Window.png。总之实现的方法不止一个,有很多很多。

JavaScript 数据类型:string,array,number 本次遇到这三个数据类型。
string是文本,直接定义时加""或'',总之就是要用引号包起来,引号也可以嵌套引号,用双引号还是单引号就根据具体情况,比如定义文本:the words "I love you"。可以这么定义:var str = 'the words "I love you"'
应该只有英语语境的人会考虑这个问题吧,用的中文“”是完全没这个问题的。

array是数组的意思,直接定义时使用[xx,xx,xx]的形式,xx是数组中的元素。调用单独的元素可以使用数组下标,注意数组的下标是从0开始的。
例如 var arr =[1,2,3]那么arr[2]就是3了。

number是数字的意思,默认10进制,跟我们的习惯一样。在MV的原方法里,有转换为16进制的方法,我们在这个需求中也借用到了。

JavaScript 语法:

return 此方法返回return后的变量或方法,需注意的是,遇到return就结束这个方法,不会继续执行方法内的后续操作。
虽然本次涉及了其他语法,但是最关键的是return,因此先只介绍return。

本需求的主要思维:替代return值。

基本上都是MV的原方法直接拿来用了,我们的改造方式就是用自己定义的值来替代原返回值。

1、写下需求

这个需求相对简单。
取代Window.png规定的颜色,自定义数字对应的颜色。
为了确认需求,可以使用画板,SAI等工具,先调一下颜色,看看适不适合。


数字颜色设定.png

然后用习惯工具,查看每个颜色的RGB参数。

2、查看MV原方法

在MV的原方法的关键是读取Window_Base.prototype.textColor = function(n)的方法所返回值。
既然是返回值,那么我们可以替代这个值。

如果不熟练的话,在这个return语句之前加一个console.log,就可以看到原本MV返回的值是什么。
等我们对JavaScript和MV都熟悉了以后,可以根据语句计算一下结果。

这里返回的是String数据类型,是16进制的颜色。也就是HTML常用的那种。
而我们在第1步需求里,得到的是RGB颜色。

这里有2个选择,其一,我们也改为HTML颜色,其二,我们继续利用MV的原方法。

如果是其一的话,我们可以直接写"#FAEBD7","FF9999"等等。

其二,我们可以借用MV自带的方法Bitmap.prototype.getPixel这个方法后半部分,就是在转成HTML颜色代码。

然后放在一个全局数组里,如果不是全局数组,可以放在特定的window下面,但是每一个window都需要有点麻烦。
所以还是放全局数组。

我选的是第二个,根据RGB来放置数组。


kuma006114.jpg

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、测试

测试很重要,之前数组少了一个逗号,然后导致后面的颜色全部前移了一位。经过测试才发现。
打开MV,用事件来测试。
举例:
\c[17] 17号色 \c[22]22号色 \c[38]38号色 \c[45]45号色 \c[0]0号色

5、完成

kuma006113.jpg
上一篇 下一篇

猜你喜欢

热点阅读