Project1
标题:
简单增强对话框【小周实践系列第一季第四弹】
[打印本页]
作者:
天地有正气
时间:
2014-6-18 13:38
标题:
简单增强对话框【小周实践系列第一季第四弹】
本帖最后由 天地有正气 于 2014-6-18 14:20 编辑
46345.png
(124 KB, 下载次数: 28)
下载附件
保存到相册
2014-6-18 14:20 上传
教程目标:修改对话框大小 + 文字加粗功能
现在开始~
首先找到Window_Message第12行
super(80, 304, 480, 160)
说明一下,super是继承父类的语句。
通过一开始的“Window_Message < Window_Selectable”得到,
它的父类是Window_Selectable。
在Window_Selectable20~26行找到了想要的东西。
于是我们就知道了,这里的super括号里的四个
参数
是x,y,width,height。
x => x坐标 y => y坐标 width => 宽度 height => 高度
跳回Window_Message第12行。
经常遇到文字显示不全的情况,我们可以把这个值做一些修改。
变成super(60, 304, 520, 160)。这样应该就不会出现文字显示不全的状况了。
接着往下看,找到
# 为了方便、将 "\\\\" 变换为 "\000"
text.gsub!(/\\\\/) { "\000" }
# "\\C" 变为 "\001" 、"\\G" 变为 "\002"
text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
text.gsub!(/\\[Gg]/) { "\002" }
不难猜出,这就是\c,\g这些东西。
于是我们照着这个也写一些。
text.gsub!(/\\[Bb]/) { "\003" }
然后往下拉一点点,找到这段。
# \G 的情况下
if c == "\002"
# 生成金钱窗口
if @gold_window == nil
@gold_window = Window_Gold.new
@gold_window.x = 560 - @gold_window.width
if $game_temp.in_battle
@gold_window.y = 192
else
@gold_window.y = self.y >= 128 ? 32 : 384
end
@gold_window.opacity = self.opacity
@gold_window.back_opacity = self.back_opacity
end
# 下面的文字
next
end
然后可以再仿照着写一段了。
# \B 的情况下
if c == "\003"
self.contents.font.bold = true
next
end
当然,这还不够。需要在前面在添加一个功能来关闭加粗,这就作为课后作业吧!
(下面是本节问答)
[line]50[/line]
问:那个text.gsub!是干什么的?
答:text就是显示文章里的文字,gsub!是String类(字符串的类)的方法。
用法在F1里有。是替换文字的。(具有破坏性,所以后面有!)
问:为什么写“self.contents.font.bold = true”就是加粗?
答:self.contents是Bitmap类的实例(在一开始生成的)font是Bitmap类的属性。
font是Font类的实例,在F1里面查看Font类就知道bold是加粗了。
作者:
fux2
时间:
2014-6-18 13:53
好歹配点图……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1