Project1

标题: 简单增强对话框【小周实践系列第一季第四弹】 [打印本页]

作者: 天地有正气    时间: 2014-6-18 13:38
标题: 简单增强对话框【小周实践系列第一季第四弹】
本帖最后由 天地有正气 于 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