Project1

标题: 在游戏过程中更改字体。 [打印本页]

作者: LyMin    时间: 2013-8-21 11:02
标题: 在游戏过程中更改字体。
本帖最后由 LyMin 于 2013-8-22 12:02 编辑

在游戏过程中更改字体,而不是一开始就更改字体
试过def脚本,事件中的脚本,都不行。
求大神帮忙。·_·    : )

作者: fangyc    时间: 2013-8-21 11:42
Fonts.default_font="xx" 这种不行?
作者: 喵呜喵5    时间: 2013-8-21 13:32
RUBY 代码复制
  1. =begin
  2. ================================================================================
  3.  
  4.  字体设置 By 喵呜喵5
  5.  
  6. ================================================================================
  7.  
  8. 【说明】
  9.  
  10. 在游戏中通过一个变量来修改使用的字体
  11. 缺点很明显,默认脚本中自动计算窗口高度的部分会出错,请自己设置每种字体的大小基本一致
  12. 在开头的设置中设置需要使用的字体即可
  13.  
  14. 如果某些窗口的字体没有改变的话,
  15. 找到该窗口draw_text方法,在前面加一句reset_font_settings即可,
  16. 详细的操作可以参考脚本的最后部分
  17.  
  18. =end
  19.  
  20.  
  21. #==============================================================================
  22. #  脚本部分
  23. #==============================================================================
  24.  
  25. module M5Font
  26. #==============================================================================
  27. #  设定部分
  28. #==============================================================================
  29.  
  30.   VAR = 1 #在这里设置用来切换字体的变量
  31.  
  32.  
  33.   #这里设置需要使用的字体,默认使用最顶上的字体,对应变量0
  34.   #如果变量的值比下面列出的(字体数目-1)还要大的话,会使用最顶上的字体
  35.  
  36.   FONT = [
  37.     "方正小标宋简体",
  38.     "微软雅黑",
  39.     "Microsoft Yahei",
  40.     "SimHei"
  41.     ]
  42.  
  43.   #这里设置需要使用的字体大小,和上面的字体名称一一对应  
  44.  
  45.   SIZE = [
  46.     48,
  47.     24,
  48.     30,
  49.     20
  50.     ]
  51.  
  52. #==============================================================================
  53. #  设定结束
  54. #==============================================================================
  55. end
  56. class Window_Base < Window  
  57.   def get_font_name
  58.     return M5Font::FONT[0] if !M5Font::FONT[$game_variables[M5Font::VAR]]   
  59.     M5Font::FONT[$game_variables[M5Font::VAR]]
  60.   end  
  61.   def get_font_size
  62.     return M5Font::SIZE[0] if !M5Font::SIZE[$game_variables[M5Font::VAR]]
  63.     M5Font::SIZE[$game_variables[M5Font::VAR]]
  64.   end  
  65.   def reset_font_settings
  66.     contents.font.name = get_font_name
  67.     change_color(normal_color)
  68.     contents.font.size = get_font_size
  69.     contents.font.bold = false
  70.     contents.font.italic = false
  71.   end
  72. end
  73. #==============================================================================
  74. #  以下语句让带有选择项的窗口也能够更换字体
  75. #==============================================================================
  76. class Window_Command < Window_Selectable
  77.   def draw_item(index)
  78.     reset_font_settings #在默认方法的开头加了一句reset_font_settings
  79.     change_color(normal_color, command_enabled?(index))
  80.     draw_text(item_rect_for_text(index), command_name(index), alignment)
  81.   end
  82. end
  83. #==============================================================================
  84. #  脚本结束
  85. #==============================================================================

作者: LyMin    时间: 2013-8-22 11:56
本帖最后由 LyMin 于 2013-8-22 12:01 编辑
喵呜喵5 发表于 2013-8-21 13:32
=begin
================================================================================

哦,谢谢!
作者: LyMin    时间: 2013-8-22 12:02
fangyc 发表于 2013-8-21 11:42
Fonts.default_font="xx" 这种不行?

试过了不行...
作者: 喵呜喵5    时间: 2013-8-22 13:58
LyMin 发表于 2013-8-22 12:02
试过了不行...

你是不是添加了其他显示文字的脚本结果导致和这个脚本冲突了?
作者: LyMin    时间: 2013-8-24 11:34
喵呜喵5 发表于 2013-8-22 13:58
你是不是添加了其他显示文字的脚本结果导致和这个脚本冲突了?

没有,我都是新建的一个工程
作者: 喵呜喵5    时间: 2013-8-24 12:18
LyMin 发表于 2013-8-24 11:34
没有,我都是新建的一个工程

Data.zip (209.72 KB, 下载次数: 115)

范例工程




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