加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
教学翻译
说明:因为超过本人能力范围,所以翻译错误的个别字句请自行更正。
作者: slipknot
国籍:哥斯达黎加
翻译:frantice
我们都知道要改变文章字体颜色的时候,我们只需要输入\c[#] 就行了。
但是问题来了,当我们在游戏中要经常要使用某个字,比如说,stone, 它的颜色一直要是蓝色的, 那总不能总是插入\c[1]stone\c[0], 这样吧,那真得会累死人的。
好,这样我们就来学习怎么样让这个恐怖的工作变得轻松有效^0^我们来看Window_Message的这行:
大约在84-86行左右有这样的句子:
text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
$game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
end
我们在它下面插入下面这行:
text.gsub!(/(stone)/) { "\\c[1]#{$1}\\c[0]" }
好了,这样就达到效果了~
解释:
Text是变量, 包含当前信息
gsub! 是用来替换子字符的字符串方法
/(stone)/ 是正则表达(Regular Expression.原来一直没改过来), 一个正则表达必须在符号'/'里面. 括号用来指示字符串里面的内容在后面会用到.
"\\c[1]#{$1}\\c[0]" 是双重引用的字符串
第一部分(\\c[1]) 代表文字编辑窗口的\C[1] . 第二部分 (#{$1}) 用来在字符串中插入变量. 这个例子中是变量$1, 这个变量包括了匹配的最后一个字符串.
第三部分和第一部分一样, 但是它返回到了普通文字颜色.
这样每次我们在文章中输入stone, 它都会显示蓝色. 不过我们如果用Stone的话,它就不会有任何变化了.
那怎么办呢?
把刚才的替换为:
text.gsub!(/([Ss]tones?)/) { "\\c[1]#{$1}\\c[0]" }
看下这个[Ss], 它的作用就是当ruby找到一个"S" 或"s" ,后面跟着tone 或 tones, 它就会匹配它们并描绘他们的颜色.
这个?(问号)就是用来处理匹配或者不匹配先前的文字.
为了证明,我们来输入文章: Stones, stones, stone, Stone. 我们就能看到:
截图略!!
我们也可以用这样的表达来匹配不同的单词.
text.gsub!(/([Ss]tr?o[kn]es?)/) { "\\c[3]#{$1}\\c[0]" }
它可以延伸出stone stones Stone Stones Stroke Stoke stokes... 等等单词,并都给它们描上兰色.
翻译的话:
为了测试中文是否依然有效, 我也专门测试了一遍, 谢天谢地, 能用^0^
代码: text.gsub!(/(石头)/) { "\\c[3]#{$1}\\c[0]" }
截图略!! |