|
楼主 |
发表于 2007-2-17 21:52:41
|
显示全部楼层
[拓展]在WE中就能实现RGB颜色代码!
上次写了个在WE中改变字符串颜色的函数,这次做了一些注释,
让新手看懂。并增加了一个函数:颜色渐变字符串
[codes=jass]
//====================================================
//= 以下为十进制与十六进制的转化
//====================================================
function NUM16 takes integer i returns string
if i<10 then
return I2S(i)
elseif i==10 then
return "a"
elseif i==11 then
return "b"
elseif i==12 then
return "c"
elseif i==13 then
return "d"
elseif i==14 then
return "e"
endif
return "f"
endfunction
function NUM256 takes integer i returns string
local integer a = ModuloInteger(i,16)
local integer b = (i-a)/16
if i >255 then
return "ff"
elseif i<0 then
return "00"
else
return NUM16(b)+NUM16(a)
endif
endfunction
//====================================================
//= 以下是改变字符串函数的代码
//====================================================
function ColorString takes integer alpha,integer red,integer green,integer blue,string s returns string
return"|c" + NUM256(alpha) + NUM256(red) + NUM256(green) + NUM256(blue) + s + "|r"
// 以上分别是 标识符 alpha通道 红色通道 绿色通道 蓝色通道 字符串和结束符
endfunction
//====================================================
//= 以上为渐变颜色的字符串的代码
//====================================================
function MagicString takes integer A,integer a,integer R,integer r,integer G,integer g,integer B,integer b,string s returns string
//大写的参数为起始数值,小写的参数为结束数值
//没办法,参数太多了
local integer alpha = A-a
local integer red =R-r
local integer green =G-g
local integer blue=B-b
//上面的变量为各个通道的起始差值
local integer strlgth=StringLength(s)
local integer i
local string str
loop
set i = i+1
exitwhen i>strlgth
set str=str+ColorString((alpha*i/strlgth+A),(red*i/strlgth+R),(green*i/strlgth+G),(blue*i/strlgth+B),SubString(s,i,i)
endloop
return str
endfunction
[/codes]
家里的魔兽安装1.21坏掉了(郁闷中~~~~~~~~~~~)
,没的测试,有错提醒下 |
|