Project1
标题:
地图显示变量脚本求助
[打印本页]
作者:
黑舞嗜
时间:
2011-9-19 10:48
标题:
地图显示变量脚本求助
本帖最后由 黑舞嗜 于 2011-9-19 10:49 编辑
以下是地图显示变量的脚本
#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
#==========================================================================
VAR_SWITCH = 26 # 26号开关打开此脚本才工作,关闭则停止运算,并且透明
VAR_REFRESH_SWITCH = 27 # 27号开关控制强制刷新,使用时机:1、把窗口由透明变为不透明(包括第一次使用时),2、游戏中用脚本更改了$var
$var = [] #所有需要显示在地图并且刷新的变量,可在游戏中用脚本更改。格式:[变量编号,x坐标,y坐标]
#==============================================================================
# ■ Window_XY
#------------------------------------------------------------------------------
# 显示坐标的窗口。
#==============================================================================
class Window_Var < Window_Base#注意前面那个window_var是文件名
#--------------------------------------------------------------------------
# ● 初始化窗口
#--------------------------------------------------------------------------
def initialize
super(-16, -16, 640+32, 480+32)#最后面那个数字是宽要显示多个需要改大,前面一个是长~
self.contents = Bitmap.new(width - 32, height - 32)
self.back_opacity = 255 # 这个是背景透明
self.opacity = 255 # 这个是边框和背景都透明
self.contents_opacity = 255 # 这个是内容透明
self.visible = false
self.z=9999
@var = $var
@var_a = []
for var_draw in $var
@var_a[var_draw[0]] = $game_variables[var_draw[0]]
end
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
if $game_switches[VAR_SWITCH]
@var = $var # 记录现在变量数组结构
self.contents.clear # 清除以前的变量
for var_draw in @var
@var_a[var_draw[0]] = $game_variables[var_draw[0]] # 记录现在的游戏变量
self.contents.draw_text(var_draw[1],var_draw[2],640,32,@var_a[var_draw[0]].to_s)
end
end
end
#--------------------------------------------------------------------------
# ● 判断文字刷新。节约内存用
#--------------------------------------------------------------------------
def judge
for var_draw in $var
if @var_a[var_draw[0]] != $game_variables[var_draw[0]] #如果现在记录的变量和游戏变量不同,刷新
return true
end
end
if $game_switches[VAR_REFRESH_SWITCH] # 强制刷新的时候,刷新
$game_switches[VAR_REFRESH_SWITCH] = false
return true
end
return false
end
end
class Scene_Map
alias var_66rpg_main main
def main
@var_window = Window_Var.new
@var_window.opacity = 0
var_66rpg_main
@var_window.dispose
end
#--------------------------------------------------------------------------
# ● 刷新画面
#--------------------------------------------------------------------------
alias var_66rpg_update update
def update
var_66rpg_update
if $game_switches[VAR_SWITCH]
@var_window.visible = true
@var_window.refresh if @var_window.judge
else
@var_window.visible = false
end
end
end
#==========================================================================
# 本脚本来自www.66rpg.com,用于任何游戏请保留此信息。
#==========================================================================
复制代码
如果我去掉了第40行
self.contents.clear # 清除以前的变量
复制代码
以后就可以不清除以前的变量,那么如何在去掉这一行以后,我想通过在事件里写一段代码使它执行“清除以前的变量”这段代码的功能要怎么做呢? dsu_plus_rewardpost_czw
作者:
癫狂侠客
时间:
2011-9-19 10:58
self.contents.clear
不是清楚以前的变量,而是清楚显示窗的画板,也就是让你可以在一个空白的画板区域画东西,
这一个不可以删除,否则你下面绘制的任何文字图形都得不到显示,
窗体更新必须先清除才能绘制,这是规则!
作者:
黑舞嗜
时间:
2011-9-19 11:14
癫狂侠客 发表于 2011-9-19 10:58
self.contents.clear
不是清楚以前的变量,而是清楚显示窗的画板,也就是让你可以在一个空白的画板区域画东西 ...
没啊,把这句删了以后再地图上显示变量还是会出来,只是在创建另一个变量(重新执行一个$var = [])就会出现另一个变量(两个都看得见),没删除以前就会消除上一个显示的变量,而只显示这一个,不信自己试试
作者:
wbsy8241
时间:
2011-9-19 12:08
本帖最后由 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
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1