设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2748|回复: 9
打印 上一主题 下一主题

[已经解决] 关于模拟经营的日期问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2009-7-13
帖子
129
跳转到指定楼层
1
发表于 2014-2-6 20:41:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
模拟经营离不开日期系统。然后我就写了一个很简单的模拟日期的事件。
请问怎样让游戏开始存在一个对话框在画面的某一个位置一直显示日期(变量)?
如果你想和一个傻瓜来比聪明的话
那个傻瓜会让你变成和他一样的傻瓜
然后他会用他丰富的经验战胜你

Lv1.梦旅人

梦石
0
星屑
167
在线时间
673 小时
注册时间
2013-6-15
帖子
757
2
发表于 2014-2-6 20:48:43 | 只看该作者
推荐:显示变量脚本
  1. #==============================================================================
  2. # 变量窗口
  3. #           - By芙蕾娅
  4. #------------------------------------------------------------------------------
  5. #  ★ - 新增  ☆ - 修改  ■ - 删除 ● - 无变更
  6. #==============================================================================
  7. module Freya
  8.   # 初始游戏时是否显示窗口
  9.   BeginShow = false
  10.   # 控制显示当前进度的变量ID
  11.   WindowVariableID = 2
  12.   # 进度最大值的变量ID
  13.   MaxWindowVariableID = 12
  14.   # 进度条颜色,数字和事件的文字颜色同理
  15.   VariableColor1 = 11
  16.   VariableColor2 = 3
  17.   # $game_system.variable_show = true
  18.   # 为显示进度窗口,要关闭则设把true设为false
  19. end
  20. #==============================================================================
  21. # ■ Game_System
  22. #------------------------------------------------------------------------------
  23. #  处理系统附属数据的类。保存存档和菜单的禁止状态之类的数据。
  24. #   本类的实例请参考 $game_system 。
  25. #==============================================================================
  26. class Game_System
  27.   #--------------------------------------------------------------------------
  28.   # ● 定义实例变量
  29.   #--------------------------------------------------------------------------
  30.   attr_accessor :variable_show_text            # 进度名称
  31.   attr_accessor :variable_show                 # 进度窗口是否显示
  32.   #--------------------------------------------------------------------------
  33.   # ● 初始化对象
  34.   #--------------------------------------------------------------------------
  35.   alias vw_initialize initialize
  36.   def initialize
  37.     vw_initialize
  38.     @variable_show_text = "天数"
  39.     @variable_show = Freya::BeginShow
  40.   end
  41. end
  42. #==============================================================================
  43. # ■ Window_Variable
  44. #------------------------------------------------------------------------------
  45. #  显示变量窗口
  46. #==============================================================================
  47. class Window_Variable < Window_Base
  48.   #--------------------------------------------------------------------------
  49.   # ● 初始化对象
  50.   #--------------------------------------------------------------------------
  51.   def initialize
  52.     super(0, 0, window_width, fitting_height(1))
  53.     unless $game_system.variable_show
  54.       self.opacity = 0
  55.       self.contents_opacity = 0
  56.     end
  57.     refresh
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 获取窗口的宽度
  61.   #--------------------------------------------------------------------------
  62.   def window_width
  63.     return 160
  64.   end
  65.   #--------------------------------------------------------------------------
  66.   # ● 更新画面
  67.   #--------------------------------------------------------------------------
  68.   def update
  69.     super
  70.     if $game_system.variable_show
  71.       self.opacity = 255
  72.       self.contents_opacity = 255
  73.     else
  74.       self.opacity = 0
  75.       self.contents_opacity = 0
  76.     end
  77.     refresh
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● 刷新
  81.   #--------------------------------------------------------------------------
  82.   def refresh
  83.     contents.clear
  84.     color1 = text_color(Freya::VariableColor1)
  85.     color2 = text_color(Freya::VariableColor2)
  86.     if $game_variables[Freya::MaxWindowVariableID] != 0
  87.       rate = $game_variables[Freya::WindowVariableID].to_f / $game_variables[Freya::MaxWindowVariableID]
  88.       draw_gauge(0, 0, contents.width, rate, color1, color2)
  89.       text = "#{$game_variables[Freya::WindowVariableID]}/#{$game_variables[Freya::MaxWindowVariableID]}"
  90.       draw_text(contents.rect, text, 2)
  91.     else
  92.       draw_text(contents.rect, $game_variables[Freya::WindowVariableID], 2)      
  93.     end
  94.     contents.font.size = 15
  95.     draw_text(contents.rect, $game_system.variable_show_text)
  96.     contents.font.size = Font.default_size
  97.   end
  98. end

  99. #==============================================================================
  100. # ■ Scene_Map
  101. #------------------------------------------------------------------------------
  102. #  地图画面
  103. #==============================================================================
  104. class Scene_Map < Scene_Base
  105.   #--------------------------------------------------------------------------
  106.   # ● 生成所有窗口
  107.   #--------------------------------------------------------------------------
  108.   alias vw_create_all_windows create_all_windows
  109.   def create_all_windows
  110.     vw_create_all_windows
  111.     @variable_window = Window_Variable.new
  112.     @variable_window.y = Graphics.height - @variable_window.height
  113.   end
  114. end
复制代码
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2009-7-13
帖子
129
3
 楼主| 发表于 2014-2-6 21:01:49 | 只看该作者
shy 发表于 2014-2-6 20:48
推荐:显示变量脚本

谢谢..我刚才试着确实可用..但是Y轴没办法调试啊 并且这个脚本只能显示一个变量 我希望能三个变量(天时分)能一起显示的
如果你想和一个傻瓜来比聪明的话
那个傻瓜会让你变成和他一样的傻瓜
然后他会用他丰富的经验战胜你
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2009-7-13
帖子
129
4
 楼主| 发表于 2014-2-7 20:31:24 | 只看该作者
一天过去了,自顶一下
没从版规里找到自顶的规定....
如果你想和一个傻瓜来比聪明的话
那个傻瓜会让你变成和他一样的傻瓜
然后他会用他丰富的经验战胜你
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6438
在线时间
1274 小时
注册时间
2013-8-21
帖子
3657

开拓者

5
发表于 2014-2-7 20:42:38 | 只看该作者

点评

懒得写……写完了设置起来也很麻烦…………还不如现在这样直接用控制符,再写完计算窗口宽度的部分就完成了  发表于 2014-2-7 22:58
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
41 小时
注册时间
2009-7-13
帖子
129
6
 楼主| 发表于 2014-2-7 21:20:56 | 只看该作者
余烬之中 发表于 2014-2-7 20:42
http://rpg.blue/home.php?mod=space&uid=291206&do=blog&id=12023

刚刚试了一下..要几个变量就显示几个对话框..如果我想让几个变量同时显示在一个框内该怎么办?
如果你想和一个傻瓜来比聪明的话
那个傻瓜会让你变成和他一样的傻瓜
然后他会用他丰富的经验战胜你
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20935
在线时间
9332 小时
注册时间
2012-6-19
帖子
7106

开拓者短篇九导演组冠军

7
发表于 2014-2-7 22:37:14 | 只看该作者
本帖最后由 喵呜喵5 于 2014-2-7 22:47 编辑

脚本稍微更新了一下,最新版的脚本中,如果你不需要换行的话,可以这么设置要显示的变量
  1. [1,0,370,"当前的年份是:",",当前的日期是:\\v[2],当前的时间是:\\v[3]"]
复制代码
(\\v[n]就代表第n号变量的值)
效果图:


如果你需要换行还需要各种美化的话…………

稍等我再改改这个脚本

点评

你不准备做一个自适应任何数目变量的吗…………那我来写一个【其实我他妈正写到一半  发表于 2014-2-7 22:52
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20935
在线时间
9332 小时
注册时间
2012-6-19
帖子
7106

开拓者短篇九导演组冠军

8
发表于 2014-2-7 23:04:34 | 只看该作者
本帖最后由 喵呜喵5 于 2014-2-8 14:11 编辑

此楼作废,脚本已经更新在10楼
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

百合控

梦石
0
星屑
6438
在线时间
1274 小时
注册时间
2013-8-21
帖子
3657

开拓者

9
发表于 2014-2-8 11:09:32 | 只看该作者

以防万一:GitHub
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 地图显示变量
  3. #  作者:影月千秋
  4. #  版本:V 1.0
  5. #  最近更新:2014.02.08
  6. #  适用:VA
  7. #------------------------------------------------------------------------------
  8. # ● 简介
  9. #  在地图上显示变量,可以附加文字
  10. #==============================================================================
  11. # ● 使用方法
  12. #   将此脚本插入到其他脚本以下,Main以上,在下方进行设置即可
  13. #==============================================================================
  14. # ● 更新
  15. #   V 1.0 2014.02.08 新建
  16. #==============================================================================
  17. # ● 声明
  18. #   本脚本来自【影月千秋】,使用、修改和转载请保留此信息
  19. #==============================================================================
  20.  
  21.  
  22. #==============================================================================
  23. # ■ Smomo::VarWin
  24. #==============================================================================
  25. module Smomo
  26.   module VarWin
  27.     SWI = 0
  28.     # 当此开关打开 才会显示变量
  29.     # 如果想要一直显示 就设为0
  30.  
  31.     Var = [
  32.     # 变量和显示方式
  33.     #·填写方式
  34.     # [[横坐标, 纵坐标], "显示模板", [需要显示的变量ID], 可省略{窗口背景是否可见}]
  35.     # 最后一项如果省略 默认可见
  36.     #  横纵坐标是显示位置左上角的坐标
  37.     #  显示模板是sprintf使用的格式化字符串,对于不懂脚本的人:
  38.     #    使用【%s】来代替变量,使用【%02d】控制变量格式
  39.     #    看不懂的话 下面有例子
  40.     #  需要显示的变量形如【[3,9,10]】依次显示三个变量
  41.     #
  42.     #·例子
  43.     # 先假设1号变量的值为 19,2号为 4
  44.     # 下面两个例子省略前后两个项目 但是实际操作时前面一个必须填写
  45.     # "苹果有%s个, 香蕉有%s个",[1,2]
  46.     #  显示为:苹果有19个, 香蕉有4个
  47.     # "现在是%02d分%02d秒",[1,2]
  48.     #  显示为:现在是19分04秒
  49.     #
  50.     #·特别说明
  51.     # 显示模板中 允许使用跳脱字符和对话框用的控制符 但是控制符需要多些一个\
  52.     #  比如\I[9]绘制九号图标 写成 \\I[9]
  53.     # 换行符之类跳脱字符 原样写即可
  54.     #  比如 \n 还是 \n
  55.  
  56.     # 模板 ↓  复制下面一行(或第二行) 填写后按Ctrl + Q即可生效
  57. #~     [[0,0], "%04d.%02d.%02d", [1,2,3], false],
  58. #~     [[0,0], "口袋上有%s个洞", [4]],
  59.  
  60.       [[0,0], "\\I[224]%04d年%02d月%02d日", [5,6,7], false],
  61.       [[0,100],"我要填坑,\\{还有%s天!\\}",[8], true],
  62.       [[0,200],"换个行看看吧╮(╯▽╰)╭\n再换个行\n变量的值:%s",[9]],
  63.  
  64. #=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+#
  65. #------------------------------------------------------------------------------#
  66. #                               请勿跨过这块区域                                #
  67. #------------------------------------------------------------------------------#
  68. #+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=#
  69.       "close the array"
  70.     ] # close the array
  71.     Var.pop
  72.     Var.each_with_index{|v, i| Var[i][3] = true if v[3].nil?}
  73.   end
  74. end
  75. #==============================================================================
  76. # ■ Window_MoVarShow
  77. #==============================================================================
  78. class Window_MoVarShow < Window_Base
  79.   #--------------------------------------------------------------------------
  80.   # ● 初始化
  81.   #--------------------------------------------------------------------------
  82.   def initialize(x, y, opa, fmt, *varid)
  83.     @fmt = fmt
  84.     @varid = varid
  85.     @vars = []
  86.     @varid.each_with_index{|id, index| @vars[index] = $game_variables[id]}
  87.     super(x, y, *window_size)
  88.     self.openness = 0
  89.     self.opacity = opa ? 255 : 0
  90.     refresh
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 获取窗口合适的大小
  94.   #--------------------------------------------------------------------------
  95.   def window_size
  96.     temp_win = Window_Base.new(Graphics.width, 0, Graphics.width, 1)
  97.     temp_win.reset_font_settings
  98.     sr = temp_win.convert_escape_characters(sprintf(@fmt, *@vars))
  99.     wd = 0
  100.     pos = {:x =>0, :y =>0, :new_x =>0, :height => temp_win.calc_line_height(sr)}
  101.     sr.each_line do |s|
  102.       s.gsub!(/[\n]/){""}
  103.       temp_win.process_character(s.slice!(0, 1), s, pos) until s.empty?
  104.       wd = [pos[:x], wd].max
  105.       pos[:x] = pos[:new_x]
  106.       pos[:y] += pos[:height]
  107.       pos[:height] = temp_win.calc_line_height(s)
  108.     end
  109.     temp_win.dispose
  110.     [wd + standard_padding * 2, pos[:y] + standard_padding * 2]
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 更新
  114.   #--------------------------------------------------------------------------
  115.   def update
  116.     super
  117.     if Smomo::VarWin::SWI == 0 || $game_switches[Smomo::VarWin::SWI]
  118.       open if close?
  119.       refresh if $game_map.need_refresh
  120.     else
  121.       close if open?
  122.     end
  123.   end
  124.   #--------------------------------------------------------------------------
  125.   # ● 刷新
  126.   #--------------------------------------------------------------------------
  127.   def refresh
  128.     contents.clear
  129.     @varid.each_with_index{|id, index| @vars[index] = $game_variables[id]}
  130.     self.move(self.x, self.y, *window_size)
  131.     draw_text_ex(0, 0, sprintf(@fmt, *@vars))
  132.   end
  133. end
  134. #==============================================================================
  135. # ■ Scene_Map
  136. #==============================================================================
  137. class Scene_Map
  138.   #--------------------------------------------------------------------------
  139.   # ● 生成所有窗口
  140.   #--------------------------------------------------------------------------
  141.   alias :mo_241e43c6451d79ce81a94bc0b22c3ea5_caw :create_all_windows
  142.   def create_all_windows
  143.     mo_241e43c6451d79ce81a94bc0b22c3ea5_caw
  144.     create_mo_var_show_window
  145.   end
  146.   #--------------------------------------------------------------------------
  147.   # ● 生成变量窗口
  148.   #--------------------------------------------------------------------------
  149.   def create_mo_var_show_window
  150.     @mo_var_show_window = []
  151.     Smomo::VarWin::Var.each_with_index do |((x, y), fmt, vars, opa), id|
  152.       @mo_var_show_window[id] = Window_MoVarShow.new(x, y, opa, fmt, *vars)
  153.     end
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 更新画面
  157.   #--------------------------------------------------------------------------
  158.   alias :mo_241e43c6451d79ce81a94bc0b22c3ea5_update :update
  159.   def update
  160.     update_mo_var_show_window
  161.     mo_241e43c6451d79ce81a94bc0b22c3ea5_update 
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # ● 更新变量窗口
  165.   #--------------------------------------------------------------------------
  166.   def update_mo_var_show_window
  167.     @mo_var_show_window.each{|win| win.update}
  168.   end
  169. end
萌新瑟瑟发抖
看到我请叫我去干活
回复 支持 反对

使用道具 举报

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
20935
在线时间
9332 小时
注册时间
2012-6-19
帖子
7106

开拓者短篇九导演组冠军

10
发表于 2014-2-8 14:06:38 | 只看该作者
本帖最后由 喵呜喵5 于 2014-2-8 14:15 编辑



完成~
  1. =begin
  2. ===============================================================================
  3.   地图显示变量 By 喵呜喵5
  4. ===============================================================================

  5. 【说明】
  6.   
  7.   在地图上显示变量
  8.   支持许多的自定义操作,
  9.   前提是:
  10.   你要看的懂语死早的我写的使用说明……

  11.   
  12. =end
  13. $m5script = {} if $m5script.nil?
  14. $m5script["M5VAR"] = true
  15. module M5VAR
  16.   VAR_CONFIG = []
  17. #==============================================================================
  18. #  设定部分
  19. #==============================================================================  
  20.   VAR =
  21.   [nil,
  22.   #--------------------------------------------------------------------------
  23.   # ● 设置需要使用的变量
  24.   #--------------------------------------------------------------------------
  25.   
  26.   1,2,
  27.   
  28.   #在上面这行填写需要在地图上显示的变量的变量ID,
  29.   #※每个ID后面记得加一个英文的逗号
  30.   
  31.   #--------------------------------------------------------------------------
  32.   # ● 设置结束
  33.   #--------------------------------------------------------------------------  
  34.   ]  
  35.   
  36.   #--------------------------------------------------------------------------
  37.   # ● 设置变量显示的属性
  38.   #--------------------------------------------------------------------------

  39. #~   ●设置格式:
  40. #~   
  41. #~   先复制以下代码:
  42. #~
  43. #~   VAR_CONFIG[n] = {
  44. #~   
  45. #~   }
  46. #~
  47. #~   添加到下面的设置后面,其中n对应上面设置的第n个变量
  48. #~   之后,在两个大括号{ }中间添加内容即可设置变量窗口的属性
  49. #~   
  50. #~   添加内容的格式为:
  51. #~   
  52. #~   需要设置的属性 => 属性的值 ,
  53. #~   
  54. #~   (※注意一定要添加最后的逗号)
  55. #~   
  56. #~   可以设置的属性如下:
  57. #~   :X        窗口的X坐标(一个数字)
  58. #~   :Y        窗口的Y坐标(一个数字)
  59. #~   :HINT1    在变量的数值前面显示的提示文字(一串文字,前后要加双引号)
  60. #~   :HINT2    在变量的数值后面显示的提示文字(一串文字,前后要加双引号)
  61. #~   :BACK     变量窗口的背景图片,文件放在Graphics/System/下
  62. #~             (文件不存在时窗口只会透明不会报错)(一串文字,前后要加双引号)
  63. #~   :SWI      窗口的开关,当开关打开时不显示这个窗口(一个数字)
  64. #~
  65. #~   ●更进一步的设置
  66. #~
  67. #~   如果希望让显示变量的窗口功能更加强大,请继续阅读下面的内容
  68. #~   否则上面的内容应该就能满足你的要求了
  69. #~   HINT1、HINT2的内容支持转义字符,常用的有以下几个:
  70. #~   \n        换行
  71. #~   \\i[n]    显示第n号图标
  72. #~   \\c[n]    后面的文字颜色变成第n种颜色
  73. #~   \\{       字体放大
  74. #~   \\}       字体缩小
  75. #~   \\v[n]    显示第n号变量的数值
  76. #~   \\n[n]    显示第n名角色的姓名
  77. #~   \\p[n]    显示第n名队员的姓名
  78. #~   \\g       显示货币的单位
  79.   
  80.   
  81.   VAR_CONFIG[1] = {
  82.   :Y => 280 ,
  83.   :HINT1 => "现在的\\{时间\\}是:\\{\n" ,
  84.   :HINT2 => "\\}\n3号变量的值是:\n\\{\\v[3]" ,
  85.   :SWI => 2,  
  86.   }

  87. #~   第一个变量的属性:
  88. #~   Y坐标为280,
  89. #~   开头显示提示文字:
  90. #~   现在的(放大)时间(缩小)是:(放大)(换行)
  91. #~   结尾显示提示文字:
  92. #~   (缩小)(换行)3号变量的值是:(换行)(放大)(3号变量)
  93. #~   当开关2打开的时候隐藏这个窗口

  94.   
  95.   VAR_CONFIG[2] = {
  96.   :X => 90 ,
  97.   :Y => 10 ,
  98.   :HINT1 => "\\{\\i[10]2号变量的值是" ,
  99.   :BACK => "var",  
  100.   }
  101.   
  102. #~   第二个变量的属性:
  103. #~   X坐标为90,
  104. #~   Y坐标为10,
  105. #~   开头显示提示文字:
  106. #~   (放大)(10号图标)2号变量的值是
  107. #~   窗口背景透明,背景图片名字叫var,当图片找不到时不报错
  108.   
  109.   #--------------------------------------------------------------------------
  110.   # ● 设置结束
  111.   #--------------------------------------------------------------------------
  112.   
  113.   #--------------------------------------------------------------------------
  114.   # ● 设置变量的高度
  115.   #--------------------------------------------------------------------------

  116.   Z = 100
  117.   
  118.   #如果显示变量的窗口遮住其他不希望遮住的内容了,请调小上面这个数值
  119.   
  120.   #--------------------------------------------------------------------------
  121.   # ● 设置脚本的开关
  122.   #--------------------------------------------------------------------------
  123.   
  124.   SWI = 1
  125.   
  126.   #当下面的开关打开的时候将不在地图上显示变量
  127.   
  128. #==============================================================================
  129. #  设定结束
  130. #==============================================================================
  131. end
  132. #--------------------------------------------------------------------------
  133. # ● 计算窗口大小时使用的临时窗口
  134. #--------------------------------------------------------------------------
  135. class Window_CalTextSize < Window_Base
  136.   #--------------------------------------------------------------------------
  137.   # ● 开始处理
  138.   #--------------------------------------------------------------------------
  139.   def initialize(text)
  140.     super(0, 0, Graphics.width, Graphics.height)
  141.     self.opacity = 0
  142.     @text = text   
  143.   end
  144.   #--------------------------------------------------------------------------
  145.   # ● 计算高度
  146.   #--------------------------------------------------------------------------
  147.   def cal_all_text_height
  148.     all_text_height = 1
  149.     convert_escape_characters(@text).each_line do |line|
  150.       all_text_height += calc_line_height(line, false)
  151.     end
  152.     reset_font_settings
  153.     return all_text_height
  154.   end
  155.   #--------------------------------------------------------------------------
  156.   # ● 计算宽度
  157.   #--------------------------------------------------------------------------
  158.   def cal_all_text_width
  159.     all_text_width = 1
  160.     convert_escape_characters(@text).each_line do |line|
  161.       all_text_width = [all_text_width,calc_line_width(line)].max
  162.     end
  163.     reset_font_settings
  164.     return all_text_width
  165.   end
  166.   def calc_line_width(text)
  167.     pos = {:x => 0, :y => 0, :new_x => 0, :height => 416}
  168.     process_character(text.slice!(0, 1), text, pos) until text.empty?
  169.     return pos[:x]
  170.   end
  171.   def process_new_line(text, pos)
  172.   end
  173. end
  174. #--------------------------------------------------------------------------
  175. # ● 显示变量的窗口
  176. #--------------------------------------------------------------------------
  177. class Window_M5Var< Window_Base
  178.   #--------------------------------------------------------------------------
  179.   # ● 开始处理
  180.   #--------------------------------------------------------------------------
  181.   def initialize(var,config)   
  182.     x,y = get_config(config)   
  183.     super(x,y,Graphics.width,Graphics.height)
  184.     self.arrows_visible = false
  185.     self.z = M5VAR::Z
  186.     self.openness = 0   
  187.     @var = var
  188.     refresh($game_variables[@var])
  189.     self.height = calheight   
  190.     create_back_sprite   
  191.   end
  192.   #--------------------------------------------------------------------------
  193.   # ● 获取窗口的设置
  194.   #--------------------------------------------------------------------------
  195.   def get_config(config)
  196.     if M5VAR::VAR_CONFIG[config]
  197.       x = M5VAR::VAR_CONFIG[config][:X]
  198.       y = M5VAR::VAR_CONFIG[config][:Y]
  199.       @hint1 = M5VAR::VAR_CONFIG[config][:HINT1]
  200.       @hint2 = M5VAR::VAR_CONFIG[config][:HINT2]
  201.       @back = M5VAR::VAR_CONFIG[config][:BACK]
  202.       @swi = M5VAR::VAR_CONFIG[config][:SWI]
  203.     end
  204.     @hint1 = "" if !@hint1
  205.     @hint2 = "" if !@hint2
  206.     @swi = 0 if !@swi
  207.     x = 0 if !x
  208.     y = 0 if !y
  209.     return x,y
  210.   end
  211.   #--------------------------------------------------------------------------
  212.   # ● 显示窗口的背景
  213.   #--------------------------------------------------------------------------
  214.   def create_back_sprite
  215.     return if !@back
  216.     self.opacity = 0
  217.     return if Dir.glob("Graphics/System/" + @back + ".*").empty?
  218.     @background_sprite = Sprite.new
  219.     @background_sprite.bitmap = Cache.system(@back)
  220.   end
  221.   #--------------------------------------------------------------------------
  222.   # ● 更新
  223.   #--------------------------------------------------------------------------
  224.   def update
  225.     super
  226.     if $game_switches[M5VAR::SWI] or $game_switches[@swi]
  227.       @background_sprite.opacity = 0 if @background_sprite and \
  228.       @background_sprite.opacity != 0
  229.       close if open?
  230.     else
  231.       @background_sprite.opacity = 255 if @background_sprite and \
  232.       @background_sprite.opacity != 255
  233.       open if close?
  234.       if $game_variables[@var]!= @cont
  235.         refresh($game_variables[@var])
  236.       end
  237.     end
  238.   end
  239.   #--------------------------------------------------------------------------
  240.   # ● 描绘文字
  241.   #--------------------------------------------------------------------------
  242.   def refresh(text)
  243.     @cont = $game_variables[@var]
  244.     [url=home.php?mod=space&uid=79957]@WORD[/url] = (@hint1 + text.to_s + @hint2)
  245.     self.width  = calwidth
  246.     contents.clear
  247.     draw_text_ex(0,-2, @word)
  248.   end
  249.   #--------------------------------------------------------------------------
  250.   # ● 计算窗口的高度
  251.   #--------------------------------------------------------------------------
  252.   def calheight
  253.     temp = Window_CalTextSize.new(@word)
  254.     height = temp.cal_all_text_height
  255.     temp.dispose
  256.     height + standard_padding * 2
  257.   end
  258.   #--------------------------------------------------------------------------
  259.   # ● 计算窗口的宽度
  260.   #--------------------------------------------------------------------------
  261.   def calwidth
  262.     temp = Window_CalTextSize.new(@word)
  263.     width = temp.cal_all_text_width
  264.     temp.dispose
  265.     width + standard_padding * 2
  266.   end
  267.   #--------------------------------------------------------------------------
  268.   # ● 释放窗口
  269.   #--------------------------------------------------------------------------
  270.   def dispose
  271.     super
  272.     @background_sprite.dispose if @background_sprite
  273.   end  
  274. end
  275. #--------------------------------------------------------------------------
  276. # ● Scene_Map
  277. #--------------------------------------------------------------------------
  278. class Scene_Map < Scene_Base
  279.   alias m5_20131103_create_all_windows create_all_windows
  280.   def create_all_windows
  281.     m5_20131103_create_all_windows   
  282.     @var_window = Array.new(M5VAR::VAR.size) do |i|
  283.       Window_M5Var.new(M5VAR::VAR[i],i) if M5VAR::VAR[i]
  284.     end
  285.   end
  286.   alias m5_20131103_update update
  287.   def update
  288.     m5_20131103_update
  289.     @var_window.each {|window| window.update if window}
  290.   end
  291.   alias m5_20131103_terminate terminate
  292.   def terminate   
  293.     m5_20131103_terminate
  294.     @var_window.each {|window| window.dispose if window}
  295.   end  
  296. end
复制代码

点评

250行 [url=home.php?mod=space&uid=79957]@WORD[/url] 改成 @word  发表于 2014-2-8 14:10

评分

参与人数 1梦石 +1 收起 理由
迷糊的安安 + 1 认可答案,非常感谢您的帮助~

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-24 09:16

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表