Project1
标题: 自制的图片菜单,在游戏中通过对话调出,要怎么做呢? [打印本页]
作者: raymondyrf 时间: 2013-5-1 21:38
标题: 自制的图片菜单,在游戏中通过对话调出,要怎么做呢? 如题,我下载了很多范例,但是基本上都是调用窗口菜单的。
我自己制作好一个窗口菜单的图片了,就想通过脚本,加上事件,通过对话中调出来,然后再像人物状态菜单里面那样,把获取对应数值,在某个区域draw出来。
我的思路大概就是,通过Scene来create一个window,但是window里没有任何原来系统设定的那种窗口、菜单什么的,完完全全就是把我做好的图刷出来
再来就是获取游戏中某些变量,比如说人物经验值啊什么的,然后在我这个图片菜单中的某个区域把这些已经获取的数值draw出来。
问题是,我不知道怎么写···
求助一下各位大神!!
作者: j433463 时间: 2013-5-1 22:22
简单的说,就是想做一个可以用脚本或事件调出的显示变量菜单窗口吧?
作者: raymondyrf 时间: 2013-5-1 22:24
j433463 发表于 2013-5-1 22:22
简单的说,就是想做一个可以用脚本或事件调出的显示变量菜单窗口吧?
1、显示多个变量
2、这个窗口其实就是我事先弄好一个的图片
作者: j433463 时间: 2013-5-1 23:41
本帖最后由 j433463 于 2013-5-1 23:49 编辑
raymondyrf 发表于 2013-5-1 22:24
1、显示多个变量
2、这个窗口其实就是我事先弄好一个的图片
不太明白您的意思,如果只是一个显示变量的小窗口,那只需要一个 Widnow_XXX 的窗口脚本,并且在 Scene_Map 中建一个 create_xxx_window 视窗调用 Window_XXX.new 而已,
如果是要菜单,可以参考这样子:
Window_VarInfo
#encoding:utf-8
#==============================================================================
# ■ Window_VarInfo
#------------------------------------------------------------------------------
# 显示变量资讯的视窗
#==============================================================================
class Window_VarInfo < Window_Base
#--------------------------------------------------------------------------
# ● 初始化物件
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , Graphics.width , Graphics.height )
refresh
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
draw_text( 120 , line_height * 0 + 30 , 80 , line_height, Vocab::param( 2 ) , 0 )
draw_text( 200 , line_height * 0 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 120 , line_height * 1 + 30 , 80 , line_height, Vocab::param( 3 ) , 0 )
draw_text( 200 , line_height * 1 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_VarInfo
#------------------------------------------------------------------------------
# 显示变量资讯的视窗
#==============================================================================
class Window_VarInfo < Window_Base
#--------------------------------------------------------------------------
# ● 初始化物件
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , Graphics.width , Graphics.height )
refresh
end
#--------------------------------------------------------------------------
# ● 重新整理
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
draw_text( 120 , line_height * 0 + 30 , 80 , line_height, Vocab::param( 2 ) , 0 )
draw_text( 200 , line_height * 0 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 120 , line_height * 1 + 30 , 80 , line_height, Vocab::param( 3 ) , 0 )
draw_text( 200 , line_height * 1 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
end
end
Scene_MyMenu
#encoding:utf-8
#==============================================================================
# ■ Scene_MyMenu
#------------------------------------------------------------------------------
# 选单画面
#==============================================================================
class Scene_MyMenu < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 开始处理
#--------------------------------------------------------------------------
def start
super
create_varinfo_window
end
#--------------------------------------------------------------------------
# ● 生成视窗
#--------------------------------------------------------------------------
def create_varinfo_window
@vf_window = Window_VarInfo.new
@vf_window .x = 0
@vf_window .y = 50
@vf_window .opacity = 0
end
#--------------------------------------------------------------------------
# ● 生成背景
#--------------------------------------------------------------------------
def create_background
@background_sprite = Sprite.new
@background_sprite .bitmap = Cache.load_bitmap ( "Graphics/Pictures/" ,"Plain" ) #背景图
@background_sprite .color .set ( 0 , 0 , 0 , 0 )
end
#--------------------------------------------------------------------------
# ● 结束背景
#--------------------------------------------------------------------------
def dispose_background
@background_sprite .dispose
end
#--------------------------------------------------------------------------
# ● 刷新,侦测按钮
#--------------------------------------------------------------------------
def update
super
SceneManager.goto ( Scene_Map) if Input.trigger ?( :B ) #就是按 Esc 结束菜单
end
end
#encoding:utf-8
#==============================================================================
# ■ Scene_MyMenu
#------------------------------------------------------------------------------
# 选单画面
#==============================================================================
class Scene_MyMenu < Scene_MenuBase
#--------------------------------------------------------------------------
# ● 开始处理
#--------------------------------------------------------------------------
def start
super
create_varinfo_window
end
#--------------------------------------------------------------------------
# ● 生成视窗
#--------------------------------------------------------------------------
def create_varinfo_window
@vf_window = Window_VarInfo.new
@vf_window .x = 0
@vf_window .y = 50
@vf_window .opacity = 0
end
#--------------------------------------------------------------------------
# ● 生成背景
#--------------------------------------------------------------------------
def create_background
@background_sprite = Sprite.new
@background_sprite .bitmap = Cache.load_bitmap ( "Graphics/Pictures/" ,"Plain" ) #背景图
@background_sprite .color .set ( 0 , 0 , 0 , 0 )
end
#--------------------------------------------------------------------------
# ● 结束背景
#--------------------------------------------------------------------------
def dispose_background
@background_sprite .dispose
end
#--------------------------------------------------------------------------
# ● 刷新,侦测按钮
#--------------------------------------------------------------------------
def update
super
SceneManager.goto ( Scene_Map) if Input.trigger ?( :B ) #就是按 Esc 结束菜单
end
end
测试截图:
基本上,在窗口中显示几个变量都只是多加几个 draw_text 分别设不同的座标显示而已,一个或多个都用的是同样的窗口脚本。
至于在地图上显示变量窗口的脚本,我以前曾贴过,虽然那是显示一个变量的,但同样多加几个 draw_text 并且把窗口长宽加大,也是可以显示多个变量,不过就是再把窗口 opacity 设为 0,加个背景图而已。
作者: raymondyrf 时间: 2013-5-2 00:07
j433463 发表于 2013-5-1 23:41
不太明白您的意思,如果只是一个显示变量的小窗口,那只需要一个 Widnow_XXX 的窗口脚本,并且在 Scene_M ...
您给的这个已经非常非常贴近了。
只差一点点,就是能不能背景不要变黑
就是说在我设定的那张图片不够大(故意不够大的)的时候,余下的地方是当前场景没有被菜单背景遮罩的地方,而不是黑色呢??
作者: j433463 时间: 2013-5-2 00:26
那要参考主菜单的方式了,因为实际上菜单不是在地图上的,它只是在呼叫主菜单时将当时的画面截图,然后显示在菜单背景而已,所以如果注意看主菜单背景的地图,画面是静止的。
作者: raymondyrf 时间: 2013-5-2 00:37
j433463 发表于 2013-5-2 00:26
那要参考主菜单的方式了,因为实际上菜单不是在地图上的,它只是在呼叫主菜单时将当时的画面截图,然后显示 ...
那请问有没有其他方法?就相当于触发后直接在原来的地方放置图片和draw数据?
作者: raymondyrf 时间: 2013-5-2 00:50
j433463 发表于 2013-5-2 00:26
那要参考主菜单的方式了,因为实际上菜单不是在地图上的,它只是在呼叫主菜单时将当时的画面截图,然后显示 ...
或者把这个黑色变透明?不管静止不静止,就是要显示到没有被遮住的地图就好了···
作者: j433463 时间: 2013-5-2 00:57
本帖最后由 j433463 于 2013-5-2 01:00 编辑
或者您想要这样?是吗:
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 0 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_INPUT = :C #切换显示/隐藏按钮, 若不想要按钮切换, 等号右边可以清除, 或改为 nil 或 "" 或 ''
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 350 , 250 )
self .opacity = 0
self .back_opacity = 120
@icon = 0
@variable = 0
@o_hp = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
rect = Rect.new ( 0 ,0 ,350 ,250 )
draw_background( rect)
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
draw_text( 120 , line_height * 0 + 30 , 80 , line_height, Vocab::param( 2 ) , 0 )
draw_text( 200 , line_height * 0 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 120 , line_height * 1 + 30 , 80 , line_height, Vocab::param( 3 ) , 0 )
draw_text( 200 , line_height * 1 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background( rect)
bitmap = Cache.load_bitmap ( "Graphics/Pictures/" , "001_战士_A" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#地图备注检查
return if ( /<NOHPHUB>/i.match ( $game_map.note ) ) != nil
#初始值
@show_hp_hud = true if @show_hp_hud == nil
#按键切换开/关
if HPHUB_INPUT != nil && HPHUB_INPUT != "" && HPHUB_INPUT != ''
if Input.trigger ?( HPHUB_INPUT)
if @show_hp_hud != true
@show_hp_hud = true
else
@show_hp_hud = false
end
end
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
#close_varia_window
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
# 管理地图的类。
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 取得地图备注栏
#--------------------------------------------------------------------------
def note
@map .note
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 0 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_INPUT = :C #切换显示/隐藏按钮, 若不想要按钮切换, 等号右边可以清除, 或改为 nil 或 "" 或 ''
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 350 , 250 )
self .opacity = 0
self .back_opacity = 120
@icon = 0
@variable = 0
@o_hp = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
rect = Rect.new ( 0 ,0 ,350 ,250 )
draw_background( rect)
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
draw_text( 120 , line_height * 0 + 30 , 80 , line_height, Vocab::param( 2 ) , 0 )
draw_text( 200 , line_height * 0 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 120 , line_height * 1 + 30 , 80 , line_height, Vocab::param( 3 ) , 0 )
draw_text( 200 , line_height * 1 + 30 , 80 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background( rect)
bitmap = Cache.load_bitmap ( "Graphics/Pictures/" , "001_战士_A" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#地图备注检查
return if ( /<NOHPHUB>/i.match ( $game_map.note ) ) != nil
#初始值
@show_hp_hud = true if @show_hp_hud == nil
#按键切换开/关
if HPHUB_INPUT != nil && HPHUB_INPUT != "" && HPHUB_INPUT != ''
if Input.trigger ?( HPHUB_INPUT)
if @show_hp_hud != true
@show_hp_hud = true
else
@show_hp_hud = false
end
end
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
#close_varia_window
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
# 管理地图的类。
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 取得地图备注栏
#--------------------------------------------------------------------------
def note
@map .note
end
end
这是临时用以前写的地图显示HP变量脚本改的,加上背景图,可以用按钮 C 也就是空白键切换显示/隐藏,如果想用别的按钮也可以自己设定。
测试截图:
作者: raymondyrf 时间: 2013-5-2 01:00
j433463 发表于 2013-5-2 00:57
或者您想要这样?是吗:
看图片我觉得可以,只是可以通过对话呼出而不是按键么?
作者: j433463 时间: 2013-5-2 01:05
对话?您指的是在事件呼出它,还是在对话框中呼出它?
作者: raymondyrf 时间: 2013-5-2 01:07
j433463 发表于 2013-5-2 01:05
对话?您指的是在事件呼出它,还是在对话框中呼出它?
事件就可以了
作者: j433463 时间: 2013-5-2 01:58
本帖最后由 j433463 于 2013-5-2 02:50 编辑
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙拖延...窘
改成的事件中操作开关切换显示/隐藏:
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 350 + standard_padding * 2 , 250 + standard_padding * 2 )
self .opacity = 0
#self.back_opacity = 120
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
change_color( system_color)
draw_text( 120 , line_height * 0 + 30 , 64 , line_height, Vocab::param( 2 ) + ":" , 0 )
draw_text( 120 , line_height * 1 + 30 , 64 , line_height, Vocab::param( 3 ) + ":" , 0 )
change_color( normal_color)
draw_text( 168 , line_height * 0 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 168 , line_height * 1 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "001_战士_A" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
#close_varia_window
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 350 + standard_padding * 2 , 250 + standard_padding * 2 )
self .opacity = 0
#self.back_opacity = 120
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
change_color( system_color)
draw_text( 120 , line_height * 0 + 30 , 64 , line_height, Vocab::param( 2 ) + ":" , 0 )
draw_text( 120 , line_height * 1 + 30 , 64 , line_height, Vocab::param( 3 ) + ":" , 0 )
change_color( normal_color)
draw_text( 168 , line_height * 0 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 168 , line_height * 1 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "001_战士_A" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
#close_varia_window
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
明明是开关 100 号,我在事件指定 001 号开启,噗,怎么试都没反应...
脚本稍作整理,把一些多余没用到的变量和程序去除了。
作者: raymondyrf 时间: 2013-5-2 02:08
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...
估计可以,准备睡觉了也没有时间去做详细测试,明天看看如何,再告诉你结果吧
总之太谢谢你啦!!
作者: raymondyrf 时间: 2013-5-2 13:21
本帖最后由 raymondyrf 于 2013-5-2 13:23 编辑
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...
您给的那个东西成功了,达到了预期的效果。
太感谢了!
顺带问一句,draw_text这个语句实现出来的,把数值draw出来之后的数值都是右对齐的,比如这样:
1
100
但我们的习惯是:
1
100
这样显示的,所以我想问这个有没有得改?
作者: raymondyrf 时间: 2013-5-2 15:35
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...
有问题出现呢,这个是怎么回事呢??
我把金钱的值draw到这里,本来游戏默认是0元,后来我同过某个事件添加了金钱,这个0依然存在,只是在上面加了501三个数字而已。
包括hp、mp这些值都是同样情况
麻烦帮忙看看是不是我改代码时改出了问题?
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
#self.back_opacity = 120
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 430 , 455 )
draw_actor_mp( $game_actors[ 1 ] , 430 , 485 )
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
#close_varia_window
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
#self.back_opacity = 120
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 430 , 455 )
draw_actor_mp( $game_actors[ 1 ] , 430 , 485 )
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
#close_varia_window
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
作者: raymondyrf 时间: 2013-5-2 16:02
j433463 发表于 2013-5-2 01:58
不好意思,刚才被自己一个小失误,搞得测试半天都不能正常切换,后来才发现是事件中开关指定错了,一场乌龙 ...
OK了,我把素材弄成不透明的就行了,无论如何还是感谢你!帮我解决了一个大问题!
作者: j433463 时间: 2013-5-2 22:53
不好意思,刚刚才上线,那个情况可能是之前的值没有消除,您在 def refresh 第一行放上:让脚本在刷新时先清理窗口画面,应该就可以解决了,保持背景透明不要紧的。
作者: raymondyrf 时间: 2013-5-3 12:22
j433463 发表于 2013-5-2 22:53
不好意思,刚刚才上线,那个情况可能是之前的值没有消除,您在 def refresh 第一行放上:让脚本在刷新时先 ...
原来是这样,谢谢了啊
作者: raymondyrf 时间: 2013-5-3 12:59
j433463 发表于 2013-5-2 22:53
不好意思,刚刚才上线,那个情况可能是之前的值没有消除,您在 def refresh 第一行放上:让脚本在刷新时先 ...
请问您这个window不能同时存在多个吗??
我想再另开一个同样的window来显示其他东西,但是把很多定义的@XX什么的修改好,不会和window_variables重复,
却提示error,stack level too deep
请问怎么解决呢??
作者: j433463 时间: 2013-5-3 14:14
stack level too deep 是一个方法反覆执行到超过处理负担,不知您是怎么改的?
一次开 N 个同样的窗口并不是不行,譬如把 def start 下的内容重覆一遍,如下: alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window.x = HPHUB_X
@varia_window.y = HPHUB_Y
@varia_window.visible = false
@varia_window2 = Window_Variables.new
@varia_window2.x = 0
@varia_window2.y = 200
end
复制代码 执行后您会看到一个窗口已经开启,若打开100号开关又会看到另一个窗口出现,但这样做,两个窗口内容是一样的,因为两个都是用 Window_Variables 建立的窗口。
那也可以改一下,用两个 Window_Variables 和 Window_Variables2 来做不同窗口,像这样:
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 430 , 455 )
draw_actor_mp( $game_actors[ 1 ] , 430 , 485 )
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
class Window_Variables2 < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 350 + standard_padding * 2 , 250 + standard_padding * 2 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
change_color( system_color)
draw_text( 120 , line_height * 0 + 30 , 72 , line_height, Vocab::param( 2 ) + ":" , 0 )
draw_text( 120 , line_height * 1 + 30 , 72 , line_height, Vocab::param( 3 ) + ":" , 0 )
draw_text( 120 , line_height * 2 + 30 , 72 , line_height, "时间" + ":" , 0 )
change_color( normal_color)
draw_text( 168 , line_height * 0 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 168 , line_height * 1 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
draw_text( 168 , line_height * 2 + 30 , 48 , line_height, $game_system .playtime_s , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "001_战士_A" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
@varia_window2 = Window_Variables2.new
@varia_window2 .x = 0
@varia_window2 .y = 200
@varia_window2 .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
@varia_window2 .refresh
@varia_window2 .visible = true
else
@varia_window .visible = false
@varia_window2 .visible = false
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 430 , 455 )
draw_actor_mp( $game_actors[ 1 ] , 430 , 485 )
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
class Window_Variables2 < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 350 + standard_padding * 2 , 250 + standard_padding * 2 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_actor_face( $game_party.members [ 0 ] , 10 , 20 )
change_color( system_color)
draw_text( 120 , line_height * 0 + 30 , 72 , line_height, Vocab::param( 2 ) + ":" , 0 )
draw_text( 120 , line_height * 1 + 30 , 72 , line_height, Vocab::param( 3 ) + ":" , 0 )
draw_text( 120 , line_height * 2 + 30 , 72 , line_height, "时间" + ":" , 0 )
change_color( normal_color)
draw_text( 168 , line_height * 0 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 2 ) , 2 )
draw_text( 168 , line_height * 1 + 30 , 48 , line_height, $game_actors [ 1 ] .param ( 3 ) , 2 )
draw_text( 168 , line_height * 2 + 30 , 48 , line_height, $game_system .playtime_s , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "001_战士_A" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
@varia_window2 = Window_Variables2.new
@varia_window2 .x = 0
@varia_window2 .y = 200
@varia_window2 .visible = false
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
@varia_window2 .refresh
@varia_window2 .visible = true
else
@varia_window .visible = false
@varia_window2 .visible = false
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
end
这样子开关 100 开关时,会同时控制显示 / 隐藏两个窗口,而且窗口内容是不同的。
作者: raymondyrf 时间: 2013-5-3 19:13
j433463 发表于 2013-5-3 14:14
stack level too deep 是一个方法反覆执行到超过处理负担,不知您是怎么改的?
一次开 N 个同样的窗口并不 ...
我的意思是,在用另一个变量去控制打开另一个那样的窗口。也是以上的方法么??
作者: raymondyrf 时间: 2013-5-3 21:15
j433463 发表于 2013-5-3 14:14
stack level too deep 是一个方法反覆执行到超过处理负担,不知您是怎么改的?
一次开 N 个同样的窗口并不 ...
我解决了,在上面定义另一个变量控制第二个窗口的显示与否就行了,谢谢你啦!!
作者: raymondyrf 时间: 2013-5-8 00:45
j433463 发表于 2013-5-3 14:14
stack level too deep 是一个方法反覆执行到超过处理负担,不知您是怎么改的?
一次开 N 个同样的窗口并不 ...
我想再问一下,如果我想多开关控制多个窗口呢??
作者: j433463 时间: 2013-5-8 08:47
就像您前面说的,不同的窗口用不同的变量.visible 为 true 或 false,来决定窗口的显示或隐藏,两个窗口和多个窗口的方式没有什么差别。
作者: raymondyrf 时间: 2013-5-8 17:59
本帖最后由 raymondyrf 于 2013-5-8 18:40 编辑
j433463 发表于 2013-5-8 08:47
就像您前面说的,不同的窗口用不同的变量.visible 为 true 或 false,来决定窗口的显示或隐藏,两个窗口和 ...
请问我这样写有没有问题呢??我知道方法,却不知道怎么写···
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
HPHUB_SWITCH1 = 99 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 520 , 237 )
draw_actor_mp( $game_actors[ 1 ] , 520 , 267 )
draw_text( 283 , 50 , 300 , 200 ,$game_variables[ 4995 ] , 2 ) #生日月
draw_text( 335 , 50 , 300 , 200 ,$game_variables[ 4994 ] , 2 ) #生日日
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
class Window_Variables2 < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 1024 , 768 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 获取日期
#--------------------------------------------------------------------------
def date
return $game_variables [ 4994 ]
end
#--------------------------------------------------------------------------
# ● 获取月份
#--------------------------------------------------------------------------
def month
return $game_variables [ 4995 ]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_text( 800 , 0 , 100 , 100 , "年" , 2 )
draw_text( 845 , 0 , 100 , 100 , "月" , 2 )
draw_text( 890 , 0 , 100 , 100 , "日" , 2 )
draw_text( 775 , 0 , 100 , 100 , "2000" , 2 )
draw_text( 818 , 0 , 100 , 100 , month, 2 )
draw_text( 868 , 0 , 100 , 100 , date, 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "date" ) #背景图
rect = Rect.new ( -800 , -20 , 1024 , 768 )
contents.blt ( x, y, bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
@varia_window2 = Window_Variables2.new
@varia_window2 .x = 0
@varia_window2 .y = 0
@varia_window2 .visible = true
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
end
return else @show_hp_hud1 == $game_switches [ HPHUB_SWITCH1]
p $game_switches [ HPHUB_SWITCH1] .to_s + "=>" + @show_hp_hud1 .to_s
if $game_switches [ HPHUB_SWITCH1] != true
@show_hp_hud1 = false
else
@show_hp_hud1 = true
end
#显示/隐藏执行
if @show_hp_hud1 == true
@varia_window2 .refresh
@varia_window2 .visible = true
else
@varia_window2 .visible = false
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
def close_varia_window_1
@varia_window1 .close
update until @varia_window1 .close ?
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
HPHUB_SWITCH1 = 99 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 520 , 237 )
draw_actor_mp( $game_actors[ 1 ] , 520 , 267 )
draw_text( 283 , 50 , 300 , 200 ,$game_variables[ 4995 ] , 2 ) #生日月
draw_text( 335 , 50 , 300 , 200 ,$game_variables[ 4994 ] , 2 ) #生日日
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
class Window_Variables2 < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 1024 , 768 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 获取日期
#--------------------------------------------------------------------------
def date
return $game_variables [ 4994 ]
end
#--------------------------------------------------------------------------
# ● 获取月份
#--------------------------------------------------------------------------
def month
return $game_variables [ 4995 ]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_text( 800 , 0 , 100 , 100 , "年" , 2 )
draw_text( 845 , 0 , 100 , 100 , "月" , 2 )
draw_text( 890 , 0 , 100 , 100 , "日" , 2 )
draw_text( 775 , 0 , 100 , 100 , "2000" , 2 )
draw_text( 818 , 0 , 100 , 100 , month, 2 )
draw_text( 868 , 0 , 100 , 100 , date, 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "date" ) #背景图
rect = Rect.new ( -800 , -20 , 1024 , 768 )
contents.blt ( x, y, bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
@varia_window2 = Window_Variables2.new
@varia_window2 .x = 0
@varia_window2 .y = 0
@varia_window2 .visible = true
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
end
return else @show_hp_hud1 == $game_switches [ HPHUB_SWITCH1]
p $game_switches [ HPHUB_SWITCH1] .to_s + "=>" + @show_hp_hud1 .to_s
if $game_switches [ HPHUB_SWITCH1] != true
@show_hp_hud1 = false
else
@show_hp_hud1 = true
end
#显示/隐藏执行
if @show_hp_hud1 == true
@varia_window2 .refresh
@varia_window2 .visible = true
else
@varia_window2 .visible = false
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
def close_varia_window_1
@varia_window1 .close
update until @varia_window1 .close ?
end
end
作者: j433463 时间: 2013-5-8 20:44
电脑例行扫毒中,浏览网页都卡得要命,暂时无法测试,等明天扫毒完毕后再找时间看了。
作者: raymondyrf 时间: 2013-5-8 20:48
j433463 发表于 2013-5-8 20:44
电脑例行扫毒中,浏览网页都卡得要命,暂时无法测试,等明天扫毒完毕后再找时间看了。 ...
好的好的,谢谢啦
作者: j433463 时间: 2013-5-9 20:26
本帖最后由 j433463 于 2013-5-9 20:29 编辑
试试吧,没有改什么地方,之前说底下有数字重叠主要就是第一个窗口没有 contents.clear
至于您说的月日问题,是因为 return 的那一行用法不对,您对照脚本看看改了哪些。
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
HPHUB_SWITCH1 = 99 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 520 , 237 )
draw_actor_mp( $game_actors[ 1 ] , 520 , 267 )
draw_text( 283 , 50 , 300 , 200 ,$game_variables[ 4995 ] , 2 ) #生日月
draw_text( 335 , 50 , 300 , 200 ,$game_variables[ 4994 ] , 2 ) #生日日
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
class Window_Variables2 < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 1024 , 768 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 获取日期
#--------------------------------------------------------------------------
def date
return $game_variables [ 4994 ]
end
#--------------------------------------------------------------------------
# ● 获取月份
#--------------------------------------------------------------------------
def month
return $game_variables [ 4995 ]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_text( 800 , 0 , 100 , 100 , "年" , 2 )
draw_text( 845 , 0 , 100 , 100 , "月" , 2 )
draw_text( 890 , 0 , 100 , 100 , "日" , 2 )
draw_text( 775 , 0 , 100 , 100 , "2000" , 2 )
draw_text( 818 , 0 , 100 , 100 , month, 2 )
draw_text( 868 , 0 , 100 , 100 , date, 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "date" ) #背景图
rect = Rect.new ( -800 , -20 , 1024 , 768 )
contents.blt ( x, y, bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
@varia_window2 = Window_Variables2.new
@varia_window2 .x = 0
@varia_window2 .y = 0
@varia_window2 .visible = true
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH] && @show_hp_hud1 == $game_switches [ HPHUB_SWITCH1]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
end
p $game_switches [ HPHUB_SWITCH1] .to_s + "=>" + @show_hp_hud1 .to_s
if $game_switches [ HPHUB_SWITCH1] != true
@show_hp_hud1 = false
else
@show_hp_hud1 = true
end
#显示/隐藏执行
if @show_hp_hud1 == true
@varia_window2 .refresh
@varia_window2 .visible = true
else
@varia_window2 .visible = false
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
def close_varia_window_1
@varia_window1 .close
update until @varia_window1 .close ?
end
end
#encoding:utf-8
#==============================================================================
# ■ Window_Variables
#------------------------------------------------------------------------------
# 地图上显示变量窗口
#==============================================================================
# 在不想要显示的地图备注栏中放上 <NOHPHUB> 就可以隐藏。
#==============================================================================
HPHUB_X = 100 #显示变量窗口的 X 座标
HPHUB_Y = 0 #显示变量窗口的 Y 座标
HPHUB_SWITCH = 100 #切换 显示 / 隐藏 窗口的开关ID
HPHUB_SWITCH1 = 99 #切换 显示 / 隐藏 窗口的开关ID
class Window_Variables < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 100 , 120 , 740 , 600 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_actor_name( $game_actors[ 1 ] , 330 , 140 )
draw_actor_nickname( $game_actors[ 1 ] , 300 , 210 )
draw_actor_level( $game_actors[ 1 ] , 330 , 177 )
draw_actor_exp( $game_actors[ 1 ] , 520 , 177 )
draw_actor_param( $game_actors[ 1 ] , 230 , 335 , 0 )
draw_actor_param( $game_actors[ 1 ] , 230 , 304 , 1 )
draw_actor_param( $game_actors[ 1 ] , 230 , 245 , 2 )
draw_actor_param( $game_actors[ 1 ] , 230 , 275 , 3 )
draw_actor_param( $game_actors[ 1 ] , 230 , 364 , 4 )
draw_actor_param( $game_actors[ 1 ] , 230 , 395 , 5 )
draw_actor_param( $game_actors[ 1 ] , 230 , 426 , 6 )
draw_actor_param( $game_actors[ 1 ] , 230 , 455 , 7 )
draw_actor_hp( $game_actors[ 1 ] , 520 , 237 )
draw_actor_mp( $game_actors[ 1 ] , 520 , 267 )
draw_text( 283 , 50 , 300 , 200 ,$game_variables[ 4995 ] , 2 ) #生日月
draw_text( 335 , 50 , 300 , 200 ,$game_variables[ 4994 ] , 2 ) #生日日
change_color( text_color( 6 ) )
draw_text( 250 , 385 , 300 , 300 ,$game_party.gold , 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "plain" ) #背景图
rect = Rect.new ( 0 , 0 , bitmap.width , bitmap.height )
contents.blt ( contents_width - bitmap.width , contents_height - bitmap.height , bitmap, rect, 255 )
bitmap.dispose
end
end
class Window_Variables2 < Window_Base
#--------------------------------------------------------------------------
# ● 初始化
#--------------------------------------------------------------------------
def initialize
super ( 0 , 0 , 1024 , 768 )
self .opacity = 0
refresh
end
#--------------------------------------------------------------------------
# ● 获取日期
#--------------------------------------------------------------------------
def date
return $game_variables [ 4994 ]
end
#--------------------------------------------------------------------------
# ● 获取月份
#--------------------------------------------------------------------------
def month
return $game_variables [ 4995 ]
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
def refresh
contents.clear
draw_background
draw_text( 800 , 0 , 100 , 100 , "年" , 2 )
draw_text( 845 , 0 , 100 , 100 , "月" , 2 )
draw_text( 890 , 0 , 100 , 100 , "日" , 2 )
draw_text( 775 , 0 , 100 , 100 , "2000" , 2 )
draw_text( 818 , 0 , 100 , 100 , month, 2 )
draw_text( 868 , 0 , 100 , 100 , date, 2 )
end
#--------------------------------------------------------------------------
# ● 绘制背景
#--------------------------------------------------------------------------
def draw_background
bitmap = Cache.picture ( "date" ) #背景图
rect = Rect.new ( -800 , -20 , 1024 , 768 )
contents.blt ( x, y, bitmap, rect, 255 )
bitmap.dispose
end
end
#==============================================================================
# ■ Scene_Map
#------------------------------------------------------------------------------
# 地图生成窗口
#==============================================================================
class Scene_Map < Scene_Base
alias new_start start
def start
new_start
@varia_window = Window_Variables.new
@varia_window .x = HPHUB_X
@varia_window .y = HPHUB_Y
@varia_window .visible = false
@varia_window2 = Window_Variables2.new
@varia_window2 .x = 0
@varia_window2 .y = 0
@varia_window2 .visible = true
end
#--------------------------------------------------------------------------
# ● 刷新
#--------------------------------------------------------------------------
alias new_update update
def update
new_update
#初始值
return if @show_hp_hud == $game_switches [ HPHUB_SWITCH] && @show_hp_hud1 == $game_switches [ HPHUB_SWITCH1]
p $game_switches [ HPHUB_SWITCH] .to_s + "=>" + @show_hp_hud .to_s
if $game_switches [ HPHUB_SWITCH] != true
@show_hp_hud = false
else
@show_hp_hud = true
end
#显示/隐藏执行
if @show_hp_hud == true
@varia_window .refresh
@varia_window .visible = true
else
@varia_window .visible = false
end
p $game_switches [ HPHUB_SWITCH1] .to_s + "=>" + @show_hp_hud1 .to_s
if $game_switches [ HPHUB_SWITCH1] != true
@show_hp_hud1 = false
else
@show_hp_hud1 = true
end
#显示/隐藏执行
if @show_hp_hud1 == true
@varia_window2 .refresh
@varia_window2 .visible = true
else
@varia_window2 .visible = false
end
end
#--------------------------------------------------------------------------
# ● 释放
#--------------------------------------------------------------------------
alias new_terminate terminate
def terminate
@varia_window .dispose
new_terminate
end
#--------------------------------------------------------------------------
# ● 关闭
#--------------------------------------------------------------------------
def close_varia_window
@varia_window .close
update until @varia_window .close ?
end
def close_varia_window_1
@varia_window1 .close
update until @varia_window1 .close ?
end
end
作者: raymondyrf 时间: 2013-5-10 00:32
j433463 发表于 2013-5-9 20:26
试试吧,没有改什么地方,之前说底下有数字重叠主要就是第一个窗口没有 contents.clear
至于您说的月日问题 ...
好的好的,感谢您了!!
我看看以后还有没有什么问题直接@ 你了,谢谢了真的
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1