Project1

标题: 怎么让一个变量显示在界面上,并且受某个开关控制是否... [打印本页]

作者: zl245479821    时间: 2013-6-20 16:36
标题: 怎么让一个变量显示在界面上,并且受某个开关控制是否...
开关开时,变量就显示。开关关时,变量不显示。最好窗口能在右下角
作者: gaofei677    时间: 2013-6-20 17:45
本帖最后由 gaofei677 于 2013-6-20 17:47 编辑

用下面这个显示变量脚本就行


RUBY 代码复制
  1. #==========================================================================
  2. # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。
  3. #==========================================================================
  4.  
  5. VAR_SWITCH = 26          # 26号开关打开此脚本才工作,关闭则停止运算,并且透明
  6. VAR_REFRESH_SWITCH = 27  # 27号开关控制强制刷新,使用时机:1、把窗口由透明变为不透明(包括第一次使用时),2、游戏中用脚本更改了$var
  7.  
  8. $var = []
  9. $var = [[13,280,10],[7,280,45],[1,280,80],[14,280,115]] #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。格式:[变量编号,x坐标,y坐标]
  10.  
  11. #==============================================================================
  12. # ■ Window_XY
  13. #------------------------------------------------------------------------------
  14. #  显示坐标的窗口。
  15. #==============================================================================
  16. class Window_Var < Window_Base#注意前面那个window_var是文件名
  17. #--------------------------------------------------------------------------
  18. # ● 初始化窗口
  19. #--------------------------------------------------------------------------
  20. def initialize
  21.   super(-16, -16, 640+32, 480+32)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  22.   self.contents = Bitmap.new(width - 32, height - 32)
  23.   self.back_opacity = 255  # 这个是背景透明
  24.   self.opacity = 255       # 这个是边框和背景都透明
  25.   self.contents_opacity = 255       # 这个是内容透明
  26.   self.visible = false
  27.   self.z=9999
  28.   @var = $var
  29.   @var_a = []
  30.   for var_draw in $var
  31.     @var_a[var_draw[0]] = $game_variables[var_draw[0]]
  32.   end   
  33.   refresh
  34. end
  35.  
  36. #--------------------------------------------------------------------------
  37. # ● 刷新
  38. #--------------------------------------------------------------------------
  39. def refresh
  40.   if $game_switches[VAR_SWITCH]
  41.     @var = $var         # 记录现在变量数组结构
  42.     self.contents.clear # 清除以前的东西
  43.     for var_draw in @var
  44.       @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
  45.  
  46.       self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
  47.     end
  48.   end
  49. end
  50. #--------------------------------------------------------------------------
  51. # ● 判断文字刷新。节约内存用
  52. #--------------------------------------------------------------------------
  53. def judge
  54.   for var_draw in $var
  55.     if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
  56.       return true
  57.     end
  58.   end
  59.   if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
  60.     $game_switches[VAR_REFRESH_SWITCH] = false
  61.     return true
  62.   end
  63.   return false
  64. end
  65. end
  66.  
  67. class Scene_Map
  68. alias  old_start start
  69. def start
  70. old_start
  71. @var_window = Window_Var.new
  72.   @var_window.opacity = 0
  73.   end
  74. #--------------------------------------------------------------------------
  75. # ● 刷新画面
  76. #--------------------------------------------------------------------------
  77. alias var_66rpg_update update
  78. def update
  79.   var_66rpg_update
  80.   if $game_switches[VAR_SWITCH]
  81.     @var_window.visible = true      
  82.     @var_window.refresh if @var_window.judge
  83.   else
  84.     @var_window.visible = false
  85.   end
  86. end
  87. end
  88. #==========================================================================
  89. # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。
  90. #==========================================================================

作者: gaofei677    时间: 2013-6-21 10:52
那你就行显示两个变量
比如 你要显示   护甲  100
变量1 = "护甲"
变量2 = 100

你在如下图的地方




在里面写
  1. $game_variables[1] = “护甲”
复制代码
(这个是指把 “护甲” 这两个汉字带入变量1)

然后 变量2 就是 “护甲”的数值,就按你平时的处理方式增减就行

然后在这个脚本的第九行写
$var = [[1,280,10],[2,280,45]]
这样就行了,楼主去试试
作者: gaofei677    时间: 2013-6-21 11:28
变量可以以任何形式出现,不仅仅只能是数字,只是系统提供事件里面只能带数字进入变量,不过我们可以用脚本带入其他形式的东西进去
作者: gaofei677    时间: 2013-6-21 11:50
更改....
作者: zl245479821    时间: 2013-6-21 13:25
gaofei677 发表于 2013-6-21 11:50
更改....

正常进行游戏时,加了你说在事件中加的那个脚本,就这样了。。

错误_副本.jpg (32.91 KB, 下载次数: 25)

错误_副本.jpg





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