Project1

标题: 如何令游戏中,符号和文字使用不同字体呢? [打印本页]

作者: 冰舞蝶恋    时间: 2012-10-18 23:06
标题: 如何令游戏中,符号和文字使用不同字体呢?
呜我记得在哪里看到过中文和英文区分字体之类的脚本。。不过现在又找不到了,
想要有办法能使符号和文字字体不同,谁有办法呢 拜托了诶 谢谢~dsu_plus_rewardpost_czw
作者: 怪蜀黍    时间: 2012-10-19 10:57

例子: Project1.rar (238.94 KB, 下载次数: 62)
脚本很简单:
  1. #==============================================================================
  2. # ■ 符号使用其他字体
  3. #------------------------------------------------------------------------------
  4. #  
  5. #==============================================================================

  6. class Window_Message < Window_Selectable
  7.   
  8. # 请设定符号使用的字体,默认为宋体:
  9.   FONT_NAME=["宋体"]
  10.   
  11.   #--------------------------------------------------------------------------
  12.   # ● 更新文章显示
  13.   #--------------------------------------------------------------------------
  14.   def update_message
  15.     loop do
  16.       c = @text.slice!(/./m)            # 获取一个文字
  17.       case c
  18.       when nil                          # 无法获取文字时
  19.         finish_message                  # 结束文章更新
  20.         break
  21.       when "\x00"                       # 新行
  22.         new_line
  23.         if @line_count >= MAX_LINE      # 当行数已至最大行数
  24.           unless @text.empty?           # 并还有有等待显示的文字时
  25.             self.pause = true           # 等待输入
  26.             break
  27.           end
  28.         end
  29.       when "\x01"                       # \C[n](文字变色)
  30.         @text.sub!(/\[([0-9]+)\]/, "")
  31.         contents.font.color = text_color($1.to_i)
  32.         next
  33.       when "\x02"                       # \G  (显示金钱)
  34.         @gold_window.refresh
  35.         @gold_window.open
  36.       when "\x03"                       # \.  (等待四分之一秒)
  37.         @wait_count = 15
  38.         break
  39.       when "\x04"                       # \|  (等待一秒)
  40.         @wait_count = 60
  41.         break
  42.       when "\x05"                       # \!  (等待输入)
  43.         self.pause = true
  44.         break
  45.       when "\x06"                       # \>  (瞬间表示on)
  46.         @line_show_fast = true
  47.       when "\x07"                       # \<  (瞬间表示off)
  48.         @line_show_fast = false
  49.       when "\x08"                       # \^  (不等待输入)
  50.         @pause_skip = true
  51.       else                              # 一般文字
  52.         if c.size == 3
  53.           contents.font.name = Font.default_name
  54.         else
  55.           contents.font.name = FONT_NAME
  56.         end  
  57.         contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
  58.         c_width = contents.text_size(c).width
  59.         @contents_x += c_width
  60.       end
  61.       break unless @show_fast or @line_show_fast
  62.     end
  63.   end
  64. end
复制代码

作者: 怪蜀黍    时间: 2012-10-20 10:33
默认符号为英文的A至Z(包含大小写),数字的0至9,还有大量的常用符号。
如果还有其它符号,请自行在下面脚本的指定地方添加:
  1. #==============================================================================
  2. # ■ 符号使用其他字体
  3. #------------------------------------------------------------------------------
  4. #  
  5. #==============================================================================

  6. class Window_Message < Window_Selectable
  7.   
  8. # 请设定符号使用的字体,默认为宋体:
  9.   FONT_NAME = ["宋体"]
  10.   
  11.   SIGN_TABLE = ("A".."Z").to_a + ("a".."z").to_a + ("0".."9").to_a +
  12.   
  13. #  如果还有其它符号,请自行在下面接着添加:
  14.   [
  15.    "~" , "!" , "@" ,"#" , "$" , "%" , "^" , "&" , "*" , "(" , ")" , "_" ,
  16.    "+" , "-" , "{" , "}" ,"[" , "]" , ":" , ";" , "|" , "," , "." , "?" ,
  17.    "/" , "<" , ">"
  18.    ]
  19.    
  20.   #--------------------------------------------------------------------------
  21.   # ● 更新文章显示
  22.   #--------------------------------------------------------------------------
  23.   def update_message
  24.     loop do
  25.       c = @text.slice!(/./m)            # 获取一个文字
  26.       case c
  27.       when nil                          # 无法获取文字时
  28.         finish_message                  # 结束文章更新
  29.         break
  30.       when "\x00"                       # 新行
  31.         new_line
  32.         if @line_count >= MAX_LINE      # 当行数已至最大行数
  33.           unless @text.empty?           # 并还有有等待显示的文字时
  34.             self.pause = true           # 等待输入
  35.             break
  36.           end
  37.         end
  38.       when "\x01"                       # \C[n](文字变色)
  39.         @text.sub!(/\[([0-9]+)\]/, "")
  40.         contents.font.color = text_color($1.to_i)
  41.         next
  42.       when "\x02"                       # \G  (显示金钱)
  43.         @gold_window.refresh
  44.         @gold_window.open
  45.       when "\x03"                       # \.  (等待四分之一秒)
  46.         @wait_count = 15
  47.         break
  48.       when "\x04"                       # \|  (等待一秒)
  49.         @wait_count = 60
  50.         break
  51.       when "\x05"                       # \!  (等待输入)
  52.         self.pause = true
  53.         break
  54.       when "\x06"                       # \>  (瞬间表示on)
  55.         @line_show_fast = true
  56.       when "\x07"                       # \<  (瞬间表示off)
  57.         @line_show_fast = false
  58.       when "\x08"                       # \^  (不等待输入)
  59.         @pause_skip = true
  60.       else                              # 一般文字
  61.         contents.font.name = SIGN_TABLE.include?(c) ? FONT_NAME : Font.default_name
  62.         contents.draw_text(@contents_x, @contents_y, 40, WLH, c)
  63.         c_width = contents.text_size(c).width
  64.         @contents_x += c_width
  65.       end
  66.       break unless @show_fast or @line_show_fast
  67.     end
  68.   end
  69. end
复制代码





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