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

Project1

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

[已经解决] 地图显示变量脚本求助

 关闭 [复制链接]

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
跳转到指定楼层
1
发表于 2011-9-19 10:48:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 黑舞嗜 于 2011-9-19 10:49 编辑

以下是地图显示变量的脚本
  1. #==========================================================================
  2. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
  3. #==========================================================================

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

  6. $var = [] #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。格式:[变量编号,x坐标,y坐标]
  7. #==============================================================================
  8. # ■ Window_XY
  9. #------------------------------------------------------------------------------
  10. #  显示坐标的窗口。
  11. #==============================================================================
  12. class Window_Var < Window_Base#注意前面那个window_var是文件名
  13. #--------------------------------------------------------------------------
  14. # ● 初始化窗口
  15. #--------------------------------------------------------------------------
  16. def initialize
  17.   super(-16, -16, 640+32, 480+32)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
  18.   self.contents = Bitmap.new(width - 32, height - 32)
  19.   self.back_opacity = 255  # 这个是背景透明
  20.   self.opacity = 255       # 这个是边框和背景都透明
  21.   self.contents_opacity = 255       # 这个是内容透明
  22.   self.visible = false
  23.   self.z=9999
  24.   @var = $var
  25.   @var_a = []
  26.   for var_draw in $var
  27.     @var_a[var_draw[0]] = $game_variables[var_draw[0]]
  28.   end   
  29.   refresh
  30. end

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

  60. class Scene_Map
  61. alias var_66rpg_main main
  62. def main
  63.   @var_window = Window_Var.new
  64.   @var_window.opacity = 0
  65.   var_66rpg_main
  66.   @var_window.dispose
  67. end
  68. #--------------------------------------------------------------------------
  69. # ● 刷新画面
  70. #--------------------------------------------------------------------------
  71. alias var_66rpg_update update
  72. def update
  73.   var_66rpg_update
  74.   if $game_switches[VAR_SWITCH]
  75.     @var_window.visible = true      
  76.     @var_window.refresh if @var_window.judge
  77.   else
  78.     @var_window.visible = false
  79.   end
  80. end
  81. end
  82. #==========================================================================
  83. # 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
  84. #==========================================================================
复制代码
如果我去掉了第40行
  1. self.contents.clear # 清除以前的变量
复制代码
以后就可以不清除以前的变量,那么如何在去掉这一行以后,我想通过在事件里写一段代码使它执行“清除以前的变量”这段代码的功能要怎么做呢?
roguelike求生RPG研发中....

Lv2.观梦者

梦石
0
星屑
370
在线时间
142 小时
注册时间
2008-11-20
帖子
231
2
发表于 2011-9-19 10:58:34 | 只看该作者
self.contents.clear
不是清楚以前的变量,而是清楚显示窗的画板,也就是让你可以在一个空白的画板区域画东西,
这一个不可以删除,否则你下面绘制的任何文字图形都得不到显示,
窗体更新必须先清除才能绘制,这是规则!
  
【RPGXP视频教学】脚本不是高手的专利 (正在更新...)
http://rpg.blue/thread-238457-1-1.html



回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1433
在线时间
1705 小时
注册时间
2011-8-17
帖子
818
3
 楼主| 发表于 2011-9-19 11:14:48 | 只看该作者
癫狂侠客 发表于 2011-9-19 10:58
self.contents.clear
不是清楚以前的变量,而是清楚显示窗的画板,也就是让你可以在一个空白的画板区域画东西 ...

没啊,把这句删了以后再地图上显示变量还是会出来,只是在创建另一个变量(重新执行一个$var = [])就会出现另一个变量(两个都看得见),没删除以前就会消除上一个显示的变量,而只显示这一个,不信自己试试
roguelike求生RPG研发中....
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1281 小时
注册时间
2006-8-27
帖子
590
4
发表于 2011-9-19 12:08:38 | 只看该作者
本帖最后由 wbsy8241 于 2011-9-19 12:12 编辑

67.   $var_window = Window_Var.new
68.   $var_window.opacity = 0
69.   var_66rpg_main
70.   $var_window.dispose

79.    $var_window.visible = true      
80.    $var_window.refresh if $var_window.judge
81.  else
82.    $var_window.visible = false

之后在事件脚本中用 $var_window.contents.clear

点评

我弄好了  发表于 2011-9-19 13:19
用了你的办法清除变量以后如果要在显示变量就显示不出来了啊...  发表于 2011-9-19 12:57
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-27 06:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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