Project1

标题: 游戏中用一种字体显示文字,用一种字体显示数字怎么做? [打印本页]

作者: OWOWOW    时间: 2010-9-17 12:26
标题: 游戏中用一种字体显示文字,用一种字体显示数字怎么做?
本帖最后由 OWOWOW 于 2010-9-21 12:21 编辑

RT求教
作者: 85859595    时间: 2010-9-17 12:45
本帖最后由 85859595 于 2010-9-17 12:49 编辑

下载个字体  点击字体下载
安装到C:\WINDOWS\Fonts
然后
把字体名称改在这里  图上


如果不对题   那是我理解不好  抱歉 能力有限
高手可无视
作者: oОS+WEi    时间: 2010-9-17 12:51
回复 85859595 的帖子


明显不对题,LZ要的是伤害数字的字体,而不是文字的字体
作者: fwaiter    时间: 2010-9-17 13:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: fux2    时间: 2010-9-17 17:13
回复 OWOWOW 的帖子


    不太可能吧?我虽然知道一种方法但会在换字体的时候卡,所以我的建议是自行修改字体文件,网上公具很多。祝你好运!
作者: oОS+WEi    时间: 2010-9-17 18:44
我记得楼主不是会做伤害数字麽   把数字P成自己要的那种字体不就行了
作者: zhli667    时间: 2010-9-17 18:45
本帖最后由 zhli667 于 2010-9-17 18:51 编辑

在Window_Base里加入此方法
  1. def font_style(n)
  2.    case n
  3.    when 0
  4.      return Font.default_name
  5.    when 1
  6.      return "宋体"
  7.    when 2
  8.      return "华文行楷"
  9.    when 3
  10.      return "楷体_GB2312"
  11.    when 4
  12.      return "方正准圆简体"
  13.    end
  14. end
复制代码
可以自行添加其它字体
然后把Window_Message里的refresh方法替换为以下的
  1. #--------------------------------------------------------------------------
  2. # ● 刷新
  3. #--------------------------------------------------------------------------
  4. def refresh
  5.    self.contents.clear
  6.    self.contents.font.color = normal_color
  7.    
  8.    #--修改的部分-----
  9.    self.contents.font.name = Font.default_name
  10.    #------------
  11.    
  12.    x = y = 0
  13.    @cursor_width = 0
  14.    # 到选择项的下一行字
  15.    if $game_temp.choice_start == 0
  16.      x = 8
  17.    end
  18.    # 有等待显示的文字的情况下
  19.    if $game_temp.message_text != nil
  20.      text = $game_temp.message_text
  21.      # 限制文字处理
  22.      begin
  23.        last_text = text.clone
  24.        text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
  25.      end until text == last_text
  26.      text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
  27.        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
  28.      end
  29.      # 为了方便、将 "\\\\" 变换为 "\000"
  30.      text.gsub!(/\\\\/) { "\000" }
  31.      # "\\C" 变为 "\001" に、"\\G" 变为 "\002"
  32.      text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
  33.      text.gsub!(/\\[Gg]/) { "\002" }
  34.      
  35.      #--修改的部分-----
  36.      text.gsub!(/\\[Ff]\[([0-9]+)\]/) { "\003[#{$1}]" }
  37.      #------------
  38.      
  39.      # c 获取 1 个字 (如果不能取得文字就循环)
  40.      while ((c = text.slice!(/./m)) != nil)
  41.        # \\ 的情况下
  42.        if c == "\000"
  43.          # 还原为本来的文字
  44.          c = "\\"
  45.        end
  46.        # \C[n] 的情况下
  47.        if c == "\001"
  48.          # 更改文字色
  49.          text.sub!(/\[([0-9]+)\]/, "")
  50.          color = $1.to_i
  51.          if color >= 0 and color <= 7
  52.            self.contents.font.color = text_color(color)
  53.          end
  54.          # 下面的文字
  55.          next
  56.        end
  57.       
  58.        #--修改的部分-----
  59.        # \F[n] 的情况下
  60.        if c == "\003"
  61.          # 更改文字色
  62.          text.sub!(/\[([0-9]+)\]/, "")
  63.          style = $1.to_i
  64.          if style >= 0 and style <= 4  # 4是字体最大的编号,增加字体要加大这个数字
  65.            self.contents.font.name = font_style(style)
  66.          end
  67.          # 下面的文字
  68.          next
  69.        end
  70.        #------------
  71.       
  72.        # \G 的情况下
  73.        if c == "\002"
  74.          # 生成金钱窗口
  75.          if @gold_window == nil
  76.            @gold_window = Window_Gold.new
  77.            @gold_window.x = 560 - @gold_window.width
  78.            if $game_temp.in_battle
  79.              @gold_window.y = 192
  80.            else
  81.              @gold_window.y = self.y >= 128 ? 32 : 384
  82.            end
  83.            @gold_window.opacity = self.opacity
  84.            @gold_window.back_opacity = self.back_opacity
  85.          end
  86.          # 下面的文字
  87.          next
  88.        end
  89.        # 另起一行文字的情况下
  90.        if c == "\n"
  91.          # 刷新选择项及光标的高
  92.          if y >= $game_temp.choice_start
  93.            @cursor_width = [@cursor_width, x].max
  94.          end
  95.          # y 加 1
  96.          y += 1
  97.          x = 0
  98.          # 移动到选择项的下一行
  99.          if y >= $game_temp.choice_start
  100.            x = 8
  101.          end
  102.          # 下面的文字
  103.          next
  104.        end
  105.        # 描绘文字
  106.        self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
  107.        # x 为要描绘文字的加法运算
  108.        x += self.contents.text_size(c).width
  109.      end
  110.    end
  111.    # 选择项的情况
  112.    if $game_temp.choice_max > 0
  113.      @item_max = $game_temp.choice_max
  114.      self.active = true
  115.      self.index = 0
  116.    end
  117.    # 输入数值的情况
  118.    if $game_temp.num_input_variable_id > 0
  119.      digits_max = $game_temp.num_input_digits_max
  120.      number = $game_variables[$game_temp.num_input_variable_id]
  121.      @input_number_window = Window_InputNumber.new(digits_max)
  122.      @input_number_window.number = number
  123.      @input_number_window.x = self.x + 8
  124.      @input_number_window.y = self.y + $game_temp.num_input_start * 32
  125.    end
  126. end
复制代码
\f[字体编号]来改变字体,0号字体是默认字体
只适用默认对话框,想要整合到加强对话框自己参照修改的部分改改吧
作者: 步兵中尉    时间: 2010-9-19 22:17
你要改的数字仅仅指战斗中显示的数字还是所有数字
作者: 逸豫    时间: 2010-9-20 10:04
恩……找到一款只有0~9数字的字体- -|||
然后设置Main脚本中的字体为[数字字体,中文字体]




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1