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

Project1

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

[已经解决] 地图显示相同变量重叠出现2次!?只能刷新前一个,求解...

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2011-5-23
帖子
41
跳转到指定楼层
1
发表于 2013-4-1 02:01:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 hcm 于 2013-4-1 13:01 编辑



如图,我只要显示 :体力、智力、魅力、这3个初始值是1、1、0,前2天还显示的好好的

之后,今天开游戏,就变成这样了??我只设置了5个变量!

就是多出一组相同的变量,位置在原来的下方,而且不能改变刷新这组0、0、0、0(原先变量可以改变)

是怎么回事,地图显示数字变量的脚本如下:
  1. #==========================================================================
  2. # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。
  3. #==========================================================================

  4. VAR_SWITCH = 26          # 26号开关打开此脚本才工作,关闭则停止运算,并且透明
  5. VAR_REFRESH_SWITCH = 27  # 27号开关控制强制刷新,使用时机:1、把窗口由透明变为不透明(包括第一次使用时),2、游戏中用脚本更改了$var

  6. $var = []
  7. $var = [[11,70,83],[30,125,115],[16,150,13],[17,150,35],[15,150,58]]

  8. #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。格式:[变量编号,x坐标,y坐标]

  9. #==============================================================================
  10. # ■ Window_XY
  11. #------------------------------------------------------------------------------
  12. #  显示坐标的窗口。
  13. #==============================================================================
  14. class Window_Var < Window_Base#注意前面那个window_var是文件名
  15. #--------------------------------------------------------------------------
  16. # ● 初始化窗口
  17. #--------------------------------------------------------------------------
  18. def initialize
  19.   super(-16, -16, 640+48, 480+48)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  20.   self.contents = Bitmap.new(width - 32, height - 32)
  21.   self.back_opacity = 255  # 这个是背景透明
  22.   self.opacity = 255       # 这个是边框和背景都透明
  23.   self.contents_opacity = 255       # 这个是内容透明
  24.   self.visible = false
  25.   self.z=9999
  26.   @var = $var
  27.   @var_a = []
  28.   for var_draw in $var
  29.     @var_a[var_draw[0]] = $game_variables[var_draw[0]]
  30.   end   
  31.   refresh
  32. end

  33. #--------------------------------------------------------------------------
  34. # ● 刷新
  35. #--------------------------------------------------------------------------
  36. def refresh
  37.   if $game_switches[VAR_SWITCH]
  38.     @var = $var         # 记录现在变量数组结构
  39.     self.contents.clear # 清除以前的东西
  40.     for var_draw in @var
  41.       @var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
  42.       self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
  43.      if $game_switches[1]   
  44. self.contents.draw_text(var_draw[1],var_draw[2]+32,640,32,$game_variables[12345].to_s)
  45. elsif $game_switches[2]
  46. self.contents.draw_text(var_draw[1],var_draw[2]+32,640,32,$game_variables[67890].to_s)
  47. end
  48.     end
  49.   end
  50. end
  51. #--------------------------------------------------------------------------
  52. # ● 判断文字刷新。节约内存用
  53. #--------------------------------------------------------------------------
  54. def judge
  55.   for var_draw in $var
  56.     if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
  57.       return true
  58.     end
  59.   end
  60.   if $game_switches[VAR_REFRESH_SWITCH]  # 强制刷新的时候,刷新
  61.     $game_switches[VAR_REFRESH_SWITCH] = false
  62.     return true
  63.   end
  64.   return false
  65. end
  66. end

  67. class Scene_Map
  68. alias var_66rpg_main main
  69. def main
  70.   @var_window = Window_Var.new
  71.   @var_window.opacity = 0
  72.   var_66rpg_main
  73.   @var_window.dispose
  74. end
  75. #--------------------------------------------------------------------------
  76. # ● 刷新画面
  77. #--------------------------------------------------------------------------
  78. alias var_66rpg_update update
  79. def update
  80.   var_66rpg_update
  81.   if $game_switches[VAR_SWITCH]
  82.     @var_window.visible = true      
  83.     @var_window.refresh if @var_window.judge
  84.   else
  85.     @var_window.visible = false
  86.   end
  87. end
  88. end
  89. #==========================================================================
  90. # 本脚本来自[url]www.66rpg.com[/url],用于任何游戏请保留此信息。
  91. #==========================================================================
复制代码

Lv1.梦旅人

梦石
0
星屑
50
在线时间
193 小时
注册时间
2013-3-24
帖子
448
2
发表于 2013-4-1 02:08:49 | 只看该作者
本帖最后由 joe5491 于 2013-4-1 06:39 编辑

你把這個東東刪掉看看....
  1.      if $game_switches[1]   
  2. self.contents.draw_text(var_draw[1],var_draw[2]+32,640,32,$game_variables[12345].to_s)
  3. elsif $game_switches[2]
  4. self.contents.draw_text(var_draw[1],var_draw[2]+32,640,32,$game_variables[67890].to_s)
  5. end
复制代码

点评

好的,谢谢各位,解决了!  发表于 2013-4-1 20:03

评分

参与人数 1星屑 +150 收起 理由
hcm + 150 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
280
在线时间
1374 小时
注册时间
2005-10-16
帖子
5113

贵宾

3
发表于 2013-4-1 06:40:00 | 只看该作者
检查你的1号或者2号开关吧,应该有打开的~
另外,这个代码的逻辑性值得商榷啊……
我只个搬答案的
叔叔我已经当爹了~
婚后闪人了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
23 小时
注册时间
2011-5-23
帖子
41
4
 楼主| 发表于 2013-4-1 14:23:51 | 只看该作者
亿万星辰 发表于 2013-4-1 06:40
检查你的1号或者2号开关吧,应该有打开的~
另外,这个代码的逻辑性值得商榷啊…… ...

大神出现了,好久不见
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
77 小时
注册时间
2006-6-12
帖子
95
5
发表于 2013-4-1 19:59:24 | 只看该作者
2楼正解,你这3行代码是在开关1和开关2打开时,每个$var数组会显示2个数值,所以你这个代码实际上是显示了5组10个数值的

点评

好的,谢谢各位,解决了!  发表于 2013-4-1 20:03
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-27 03:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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