Project1
标题:
如何将默认文字颜色改成黑色
[打印本页]
作者:
GameMaker
时间:
2011-10-2 16:08
标题:
如何将默认文字颜色改成黑色
因为最近做了一个图片对话框来代替系统对话框,可是发现一个囧事,那就是对话框的背景色是白色!而文字的颜色也是白色!这样文字就不见了……而且游戏也编了一段时间了,前面的对话特别多,我不可能挨个改成蓝色红色而且这也不正常……所以有办法将文字颜色改为黑色么? dsu_plus_rewardpost_czw
作者:
各种压力的猫君
时间:
2011-10-2 16:13
本帖最后由 各种压力的猫君 于 2011-10-2 17:39 编辑
默认的白色换成黑色很简单,但是所有出现白色文字的地方都会变成黑色。
你是想要只有显示文章的白色变成黑色么?那么往下看
Window_Base 约35行,找到如下脚本:
#--------------------------------------------------------------------------
# ● 获取文字色
# n : 文字色编号 (0~8)
#--------------------------------------------------------------------------
def text_color(n)
case n
when 0
return Color.new(255, 255, 255, 255)
when 1
return Color.new(128, 128, 255, 255)
when 2
return Color.new(255, 128, 128, 255)
when 3
return Color.new(128, 255, 128, 255)
when 4
return Color.new(128, 255, 255, 255)
when 5
return Color.new(255, 128, 255, 255)
when 6
return Color.new(255, 255, 128, 255)
when 7
return Color.new(192, 192, 192, 255)
when 8
return Color.new(0, 0, 0, 255)
else
normal_color
end
end
复制代码
其中我加了一段(上面代码框中的第23-24行):
when 8
return Color.new(0, 0, 0, 255)
复制代码
颜色指定为你想要的,这样写是黑色,数值分别对应R,G,B,A(Alpha)。
然后Window_Message 约92行 找到如下脚本:
# c 获取 1 个字 (如果不能取得文字就循环)
while ((c = text.slice!(/./m)) != nil)
# \\ 的情况下
if c == "\000"
# 还原为本来的文字
c = "\\"
end
self.contents.font.color = text_color(8)
# \C[n] 的情况下
if c == "\001"
# 更改文字色
text.sub!(/\[([0-9]+)\]/, "")
color = $1.to_i
if color >= 0 and color <= 8
self.contents.font.color = text_color(color)
end
# 下面的文字
next
end
复制代码
其中我加了一行(上面代码框中的第8行):
self.contents.font.color = text_color(8)
复制代码
修改了一行(上面代码框中的第14行):
if color >= 0 and color <= 8
复制代码
这里的8就是前面定义的数字了。
当然你可以在这里定义更多的数字,显示文章中通过\c[n]调用
这样修改之后,未使用\c[n]定义颜色的显示文章文字均会变为黑色。
(但是使用\c[0]定义的依然会变回白色,请注意。也就是说改变颜色之后想要恢复请使用\c[8])
使用了对话框加强类脚本的话,请自行在对话框加强脚本内部查找对以上两个类相应用法重定义的部分进行修改。
(第二个是在刷新段,即搜索“def refresh”)
作者:
GameMaker
时间:
2011-10-2 16:16
本帖最后由 各种压力的猫君 于 2011-10-3 00:27 编辑
各种压力的猫君 发表于 2011-10-2 16:13
默认的白色换成黑色很简单,但是所有出现白色文字的地方都会变成黑色。
你是想要只有显示文章的白色变成黑 ...
没错……囧,不然系统颜色就看不出来了囧……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1