赞 | 68 |
VIP | 397 |
好人卡 | 580 |
积分 | 22 |
经验 | 311270 |
最后登录 | 2022-3-9 |
在线时间 | 4033 小时 |
…あたしは天使なんかじゃないわ
- 梦石
- 0
- 星屑
- 2208
- 在线时间
- 4033 小时
- 注册时间
- 2010-10-4
- 帖子
- 10779
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 taroxd 于 2014-11-22 18:08 编辑
#---------------------------------------------------------------------------- # ● 颜色扩展 #---------------------------------------------------------------------------- # # 扩展了 \C 控制符的功能。大小写不敏感。 # 可用的颜色名称可以在下面长长的列表中找到,当然也可以自定义。 # 自定义时,注意使用小写字母。 # # 使用范例: # \C[1]这是普通的蓝色,\C[Blue]这也是。 # \C[66CCFF]这是洛天依的蓝色,\C[6CF]这也是。 # \C[66CCFF7F]这是有半透明效果的洛天依的蓝色。 # #---------------------------------------------------------------------------- # # Taroxd::ColorExt 模块 # # 常量:Taroxd::ColorExt::Colors # 哈希表,键为小写字母的 symbol,值为对应的颜色。 # :"66ccff" 这样的键也是可以接受的。 # :"1" 到 :"31" 之间的符号返回窗口皮肤中的颜色。 # 找不到值时,返回 Color.new # # 模块方法:hex_code(code) # 接受一个字符串为参数,返回对应的颜色。 # code 可以是 "66ccff" 这样的 # # 模块方法:text_color,normal_color 等等 # 与 Window_Base 的对应方法相同。 # 可以让 Sprite 类包含这个模块,使这些方法在 Sprite 类中也可用。 # #---------------------------------------------------------------------------- module Taroxd end module Taroxd::ColorExt COLORS = { aliceblue: Color.new(240, 248, 255), antiquewhite: Color.new(250, 235, 215), aqua: Color.new(0, 255, 255), aquamarine: Color.new(127, 255, 212), azure: Color.new(240, 255, 255), beige: Color.new(245, 245, 220), bisque: Color.new(255, 228, 196), black: Color.new(0, 0, 0), blanchedalmond: Color.new(255, 235, 205), blue: Color.new(0, 0, 255), blueviolet: Color.new(138, 43, 226), brown: Color.new(165, 42, 42), burlywood: Color.new(222, 184, 135), cadetblue: Color.new(95, 158, 160), chartreuse: Color.new(127, 255, 0), chocolate: Color.new(210, 105, 30), coral: Color.new(255, 127, 80), cornflowerblue: Color.new(100, 149, 237), cornsilk: Color.new(255, 248, 220), crimson: Color.new(220, 20, 60), cyan: Color.new(0, 255, 255), darkblue: Color.new(0, 0, 139), darkcyan: Color.new(0, 139, 139), darkgoldenrod: Color.new(184, 134, 11), darkgray: Color.new(169, 169, 169), darkgreen: Color.new(0, 100, 0), darkkhaki: Color.new(189, 183, 107), darkmagenta: Color.new(139, 0, 139), darkolivegreen: Color.new(85, 107, 47), darkorange: Color.new(255, 140, 0), darkorchid: Color.new(153, 50, 204), darkred: Color.new(139, 0, 0), darksalmon: Color.new(233, 150, 122), darkseagreen: Color.new(143, 188, 143), darkslateblue: Color.new(72, 61, 139), darkslategray: Color.new(47, 79, 79), darkturquoise: Color.new(0, 206, 209), darkviolet: Color.new(148, 0, 211), deeppink: Color.new(255, 20, 147), deepskyblue: Color.new(0, 191, 255), dimgray: Color.new(105, 105, 105), dodgerblue: Color.new(30, 144, 255), firebrick: Color.new(178, 34, 34), floralwhite: Color.new(255, 250, 240), forestgreen: Color.new(34, 139, 34), fuchsia: Color.new(255, 0, 255), gainsboro: Color.new(220, 220, 220), ghostwhite: Color.new(248, 248, 255), gold: Color.new(255, 215, 0), goldenrod: Color.new(218, 165, 32), gray: Color.new(128, 128, 128), green: Color.new(0, 128, 0), greenyellow: Color.new(173, 255, 47), honeydew: Color.new(240, 255, 240), hotpink: Color.new(255, 105, 180), indianred: Color.new(205, 92, 92), indigo: Color.new(75, 0, 130), ivory: Color.new(255, 255, 240), khaki: Color.new(240, 230, 140), lavender: Color.new(230, 230, 250), lavenderblush: Color.new(255, 240, 245), lawngreen: Color.new(124, 252, 0), lemonchiffon: Color.new(255, 250, 205), lightblue: Color.new(173, 216, 230), lightcoral: Color.new(240, 128, 128), lightcyan: Color.new(224, 255, 255), lightgoldenrodyellow: Color.new(250, 250, 210), lightgreen: Color.new(144, 238, 144), lightgrey: Color.new(211, 211, 211), lightpink: Color.new(255, 182, 193), lightsalmon: Color.new(255, 160, 122), lightseagreen: Color.new(32, 178, 170), lightskyblue: Color.new(135, 206, 250), lightslategray: Color.new(119, 136, 153), lightsteelblue: Color.new(176, 196, 222), lightyellow: Color.new(255, 255, 224), lime: Color.new(0, 255, 0), limegreen: Color.new(50, 205, 50), linen: Color.new(250, 240, 230), magenta: Color.new(255, 0, 255), maroon: Color.new(128, 0, 0), mediumaquamarine: Color.new(102, 205, 170), mediumblue: Color.new(0, 0, 205), mediumorchid: Color.new(186, 85, 211), mediumpurple: Color.new(147, 112, 219), mediumseagreen: Color.new(60, 179, 113), mediumslateblue: Color.new(123, 104, 238), mediumspringgreen: Color.new(0, 250, 154), mediumturquoise: Color.new(72, 209, 204), mediumvioletred: Color.new(199, 21, 133), midnightblue: Color.new(25, 25, 112), mintcream: Color.new(245, 255, 250), mistyrose: Color.new(255, 228, 225), moccasin: Color.new(255, 228, 181), navajowhite: Color.new(255, 222, 173), navy: Color.new(0, 0, 128), oldlace: Color.new(253, 245, 230), olive: Color.new(128, 128, 0), olivedrab: Color.new(107, 142, 35), orange: Color.new(255, 165, 0), orangered: Color.new(255, 69, 0), orchid: Color.new(218, 112, 214), palegoldenrod: Color.new(238, 232, 170), palegreen: Color.new(152, 251, 152), paleturquoise: Color.new(175, 238, 238), palevioletred: Color.new(219, 112, 147), papayawhip: Color.new(255, 239, 213), peachpuff: Color.new(255, 218, 185), peru: Color.new(205, 133, 63), pink: Color.new(255, 192, 203), plum: Color.new(221, 160, 221), powderblue: Color.new(176, 224, 230), purple: Color.new(128, 0, 128), red: Color.new(255, 0, 0), rosybrown: Color.new(188, 143, 143), royalblue: Color.new(65, 105, 225), saddlebrown: Color.new(139, 69, 19), salmon: Color.new(250, 128, 114), sandybrown: Color.new(244, 164, 96), seagreen: Color.new(46, 139, 87), seashell: Color.new(255, 245, 238), sienna: Color.new(160, 82, 45), silver: Color.new(192, 192, 192), skyblue: Color.new(135, 206, 235), slateblue: Color.new(106, 90, 205), slategray: Color.new(112, 128, 144), snow: Color.new(255, 250, 250), springgreen: Color.new(0, 255, 127), steelblue: Color.new(70, 130, 180), tan: Color.new(210, 180, 140), teal: Color.new(0, 128, 128), thistle: Color.new(216, 191, 216), tomato: Color.new(255, 99, 71), turquoise: Color.new(64, 224, 208), violet: Color.new(238, 130, 238), wheat: Color.new(245, 222, 179), white: Color.new(255, 255, 255), whitesmoke: Color.new(245, 245, 245), yellow: Color.new(255, 255, 0), yellowgreen: Color.new(154, 205, 50), } COLORS.default_proc = -> h, k { h[k] = hex_code(k.to_s) || Color.new } module_function #-------------------------------------------------------------------------- # ● 用颜色代码获取颜色 #-------------------------------------------------------------------------- def hex_code(code) case code.size when 3, 4 Color.new(*code.each_char.map {|c| c.hex * 0x11 }) when 6, 8 Color.new(*code.scan(/../).map(&:hex)) end end #-------------------------------------------------------------------------- # ● 获取窗口皮肤 #-------------------------------------------------------------------------- def windowskin Cache.system("Window") end #-------------------------------------------------------------------------- # ● 获取文字颜色 # n : 文字颜色编号(0..31) #-------------------------------------------------------------------------- def text_color(n) windowskin.get_pixel(64 + (n % 8) * 8, 96 + (n / 8) * 8) end #-------------------------------------------------------------------------- # ● 获取各种文字颜色 #-------------------------------------------------------------------------- def normal_color; text_color(0); end; def system_color; text_color(16); end; def crisis_color; text_color(17); end; def knockout_color; text_color(18); end; def gauge_back_color; text_color(19); end; def hp_gauge_color1; text_color(20); end; def hp_gauge_color2; text_color(21); end; def mp_gauge_color1; text_color(22); end; def mp_gauge_color2; text_color(23); end; def mp_cost_color; text_color(23); end; def power_up_color; text_color(24); end; def power_down_color; text_color(25); end; def tp_gauge_color1; text_color(28); end; def tp_gauge_color2; text_color(29); end; def tp_cost_color; text_color(29); end; 32.times {|i| COLORS[:"#{i}"] = text_color(i) } end class Window_Base #-------------------------------------------------------------------------- # ● 控制符的处理 #-------------------------------------------------------------------------- alias color_ext_process_escape_character process_escape_character def process_escape_character(code, text, pos) if code.casecmp('C').zero? sym = text.slice!(/^\[\w+]/i)[1..-2].downcase.to_sym change_color Taroxd::ColorExt::COLORS[sym] else color_ext_process_escape_character(code, text, pos) end end end
#----------------------------------------------------------------------------
# ● 颜色扩展
#----------------------------------------------------------------------------
#
# 扩展了 \C 控制符的功能。大小写不敏感。
# 可用的颜色名称可以在下面长长的列表中找到,当然也可以自定义。
# 自定义时,注意使用小写字母。
#
# 使用范例:
# \C[1]这是普通的蓝色,\C[Blue]这也是。
# \C[66CCFF]这是洛天依的蓝色,\C[6CF]这也是。
# \C[66CCFF7F]这是有半透明效果的洛天依的蓝色。
#
#----------------------------------------------------------------------------
#
# Taroxd::ColorExt 模块
#
# 常量:Taroxd::ColorExt::Colors
# 哈希表,键为小写字母的 symbol,值为对应的颜色。
# :"66ccff" 这样的键也是可以接受的。
# :"1" 到 :"31" 之间的符号返回窗口皮肤中的颜色。
# 找不到值时,返回 Color.new
#
# 模块方法:hex_code(code)
# 接受一个字符串为参数,返回对应的颜色。
# code 可以是 "66ccff" 这样的
#
# 模块方法:text_color,normal_color 等等
# 与 Window_Base 的对应方法相同。
# 可以让 Sprite 类包含这个模块,使这些方法在 Sprite 类中也可用。
#
#----------------------------------------------------------------------------
module Taroxd end
module Taroxd::ColorExt
COLORS = {
aliceblue: Color.new(240, 248, 255),
antiquewhite: Color.new(250, 235, 215),
aqua: Color.new(0, 255, 255),
aquamarine: Color.new(127, 255, 212),
azure: Color.new(240, 255, 255),
beige: Color.new(245, 245, 220),
bisque: Color.new(255, 228, 196),
black: Color.new(0, 0, 0),
blanchedalmond: Color.new(255, 235, 205),
blue: Color.new(0, 0, 255),
blueviolet: Color.new(138, 43, 226),
brown: Color.new(165, 42, 42),
burlywood: Color.new(222, 184, 135),
cadetblue: Color.new(95, 158, 160),
chartreuse: Color.new(127, 255, 0),
chocolate: Color.new(210, 105, 30),
coral: Color.new(255, 127, 80),
cornflowerblue: Color.new(100, 149, 237),
cornsilk: Color.new(255, 248, 220),
crimson: Color.new(220, 20, 60),
cyan: Color.new(0, 255, 255),
darkblue: Color.new(0, 0, 139),
darkcyan: Color.new(0, 139, 139),
darkgoldenrod: Color.new(184, 134, 11),
darkgray: Color.new(169, 169, 169),
darkgreen: Color.new(0, 100, 0),
darkkhaki: Color.new(189, 183, 107),
darkmagenta: Color.new(139, 0, 139),
darkolivegreen: Color.new(85, 107, 47),
darkorange: Color.new(255, 140, 0),
darkorchid: Color.new(153, 50, 204),
darkred: Color.new(139, 0, 0),
darksalmon: Color.new(233, 150, 122),
darkseagreen: Color.new(143, 188, 143),
darkslateblue: Color.new(72, 61, 139),
darkslategray: Color.new(47, 79, 79),
darkturquoise: Color.new(0, 206, 209),
darkviolet: Color.new(148, 0, 211),
deeppink: Color.new(255, 20, 147),
deepskyblue: Color.new(0, 191, 255),
dimgray: Color.new(105, 105, 105),
dodgerblue: Color.new(30, 144, 255),
firebrick: Color.new(178, 34, 34),
floralwhite: Color.new(255, 250, 240),
forestgreen: Color.new(34, 139, 34),
fuchsia: Color.new(255, 0, 255),
gainsboro: Color.new(220, 220, 220),
ghostwhite: Color.new(248, 248, 255),
gold: Color.new(255, 215, 0),
goldenrod: Color.new(218, 165, 32),
gray: Color.new(128, 128, 128),
green: Color.new(0, 128, 0),
greenyellow: Color.new(173, 255, 47),
honeydew: Color.new(240, 255, 240),
hotpink: Color.new(255, 105, 180),
indianred: Color.new(205, 92, 92),
indigo: Color.new(75, 0, 130),
ivory: Color.new(255, 255, 240),
khaki: Color.new(240, 230, 140),
lavender: Color.new(230, 230, 250),
lavenderblush: Color.new(255, 240, 245),
lawngreen: Color.new(124, 252, 0),
lemonchiffon: Color.new(255, 250, 205),
lightblue: Color.new(173, 216, 230),
lightcoral: Color.new(240, 128, 128),
lightcyan: Color.new(224, 255, 255),
lightgoldenrodyellow: Color.new(250, 250, 210),
lightgreen: Color.new(144, 238, 144),
lightgrey: Color.new(211, 211, 211),
lightpink: Color.new(255, 182, 193),
lightsalmon: Color.new(255, 160, 122),
lightseagreen: Color.new(32, 178, 170),
lightskyblue: Color.new(135, 206, 250),
lightslategray: Color.new(119, 136, 153),
lightsteelblue: Color.new(176, 196, 222),
lightyellow: Color.new(255, 255, 224),
lime: Color.new(0, 255, 0),
limegreen: Color.new(50, 205, 50),
linen: Color.new(250, 240, 230),
magenta: Color.new(255, 0, 255),
maroon: Color.new(128, 0, 0),
mediumaquamarine: Color.new(102, 205, 170),
mediumblue: Color.new(0, 0, 205),
mediumorchid: Color.new(186, 85, 211),
mediumpurple: Color.new(147, 112, 219),
mediumseagreen: Color.new(60, 179, 113),
mediumslateblue: Color.new(123, 104, 238),
mediumspringgreen: Color.new(0, 250, 154),
mediumturquoise: Color.new(72, 209, 204),
mediumvioletred: Color.new(199, 21, 133),
midnightblue: Color.new(25, 25, 112),
mintcream: Color.new(245, 255, 250),
mistyrose: Color.new(255, 228, 225),
moccasin: Color.new(255, 228, 181),
navajowhite: Color.new(255, 222, 173),
navy: Color.new(0, 0, 128),
oldlace: Color.new(253, 245, 230),
olive: Color.new(128, 128, 0),
olivedrab: Color.new(107, 142, 35),
orange: Color.new(255, 165, 0),
orangered: Color.new(255, 69, 0),
orchid: Color.new(218, 112, 214),
palegoldenrod: Color.new(238, 232, 170),
palegreen: Color.new(152, 251, 152),
paleturquoise: Color.new(175, 238, 238),
palevioletred: Color.new(219, 112, 147),
papayawhip: Color.new(255, 239, 213),
peachpuff: Color.new(255, 218, 185),
peru: Color.new(205, 133, 63),
pink: Color.new(255, 192, 203),
plum: Color.new(221, 160, 221),
powderblue: Color.new(176, 224, 230),
purple: Color.new(128, 0, 128),
red: Color.new(255, 0, 0),
rosybrown: Color.new(188, 143, 143),
royalblue: Color.new(65, 105, 225),
saddlebrown: Color.new(139, 69, 19),
salmon: Color.new(250, 128, 114),
sandybrown: Color.new(244, 164, 96),
seagreen: Color.new(46, 139, 87),
seashell: Color.new(255, 245, 238),
sienna: Color.new(160, 82, 45),
silver: Color.new(192, 192, 192),
skyblue: Color.new(135, 206, 235),
slateblue: Color.new(106, 90, 205),
slategray: Color.new(112, 128, 144),
snow: Color.new(255, 250, 250),
springgreen: Color.new(0, 255, 127),
steelblue: Color.new(70, 130, 180),
tan: Color.new(210, 180, 140),
teal: Color.new(0, 128, 128),
thistle: Color.new(216, 191, 216),
tomato: Color.new(255, 99, 71),
turquoise: Color.new(64, 224, 208),
violet: Color.new(238, 130, 238),
wheat: Color.new(245, 222, 179),
white: Color.new(255, 255, 255),
whitesmoke: Color.new(245, 245, 245),
yellow: Color.new(255, 255, 0),
yellowgreen: Color.new(154, 205, 50),
}
COLORS.default_proc = -> h, k { h[k] = hex_code(k.to_s) || Color.new }
module_function
#--------------------------------------------------------------------------
# ● 用颜色代码获取颜色
#--------------------------------------------------------------------------
def hex_code(code)
case code.size
when 3, 4
Color.new(*code.each_char.map {|c| c.hex * 0x11 })
when 6, 8
Color.new(*code.scan(/../).map(&:hex))
end
end
#--------------------------------------------------------------------------
# ● 获取窗口皮肤
#--------------------------------------------------------------------------
def windowskin
Cache.system("Window")
end
#--------------------------------------------------------------------------
# ● 获取文字颜色
# n : 文字颜色编号(0..31)
#--------------------------------------------------------------------------
def text_color(n)
windowskin.get_pixel(64 + (n % 8) * 8, 96 + (n / 8) * 8)
end
#--------------------------------------------------------------------------
# ● 获取各种文字颜色
#--------------------------------------------------------------------------
def normal_color; text_color(0); end;
def system_color; text_color(16); end;
def crisis_color; text_color(17); end;
def knockout_color; text_color(18); end;
def gauge_back_color; text_color(19); end;
def hp_gauge_color1; text_color(20); end;
def hp_gauge_color2; text_color(21); end;
def mp_gauge_color1; text_color(22); end;
def mp_gauge_color2; text_color(23); end;
def mp_cost_color; text_color(23); end;
def power_up_color; text_color(24); end;
def power_down_color; text_color(25); end;
def tp_gauge_color1; text_color(28); end;
def tp_gauge_color2; text_color(29); end;
def tp_cost_color; text_color(29); end;
32.times {|i| COLORS[:"#{i}"] = text_color(i) }
end
class Window_Base
#--------------------------------------------------------------------------
# ● 控制符的处理
#--------------------------------------------------------------------------
alias color_ext_process_escape_character process_escape_character
def process_escape_character(code, text, pos)
if code.casecmp('C').zero?
sym = text.slice!(/^\[\w+]/i)[1..-2].downcase.to_sym
change_color Taroxd::ColorExt::COLORS[sym]
else
color_ext_process_escape_character(code, text, pos)
end
end
end
|
|