这一部分我要专门拿出来讲一下,它的常规格式是:
[Color(value=undef,red=nil,green=nil,blue=nil)]
返回颜色,或者依据参数用颜色代码(rrggbb)将值括起来
以上两行中color的括号中均为颜色的RGB表示法,区别是进制不同。RGB表示法是用Red(红),Green(绿),Blue(蓝)三种颜色来混合成其他颜色的方法,用3个数字来表示三者的浓度即可表示所有颜色。
下图是我们经常能够看到的,办公软件中十进制的RGB表示法
上面的示例中第一行使用了8位16进制,其中每两位表示一种颜色。他们的取值范围是00-ff,对应十进制的0-255。
第二行括号中是用三个0-1的小数来表示第一行中的三个值,用0-1的小数来对应十进制的0-255。大于1的数被当做1来处理。
不过每一次都是用数字来表示颜色太麻烦了,于是系统给我们预设了一些颜色让我们快速调用,他们使用同一的格式:[“文字”:颜色名]或者[颜色名 “文字”]。部分预设颜色及其对应的8位16进制码如下:
颜色名 | 颜色 | 8位16进制 |
Green | 绿色 | 00ff00 |
Cyan | 青色 | 00ffff |
Black | 黑色 | 000000 |
Blue | 蓝色 | 0000ff |
Yellow | 黄色 | ffff00 |
Red | 红色 | ff0000 |
Gray | 灰色 | afafaf |
White | 白色 | ffffff |
Fuchsia | 紫红色 | ff00ff |
然后开动我们的脑洞
还记得我们的法力值变色功能吗?显然那个还不够炫酷,我们想要一个像血条一样渐变的数字!上表中我们发现,红色=ff0000,黄色=ffff00,绿色=00ff00。
换成第二种格式的话其实就是,红色(1,0,0),黄色(1,1,0),绿色(0,1,0)。在绿变到黄的区间中,G=1,R=0变到1,而黄变到红区间中,R=1,G=1变到0。
而由于大于1的数会被当做1来处理所以其实可以把他们的变化范围乘以二,变化方式变为在整个区间中:G=2到0,R=0到2。而当前法力PercentMP=(0,100)
所以想要实现100变到0,绿到黄到红的渐变,可以写作:[PercentMP:Round:Color(2-2*PercentMP/100,2*PercentMP/100,0)]
最终效果: