Project1
标题: 在菜单中贴多个图片的方法? [打印本页]
作者: 肠腑子 时间: 2018-8-8 20:11
标题: 在菜单中贴多个图片的方法?
我之前使用这个脚本实现了图上的界面效果,虽然很好使用,但因为游戏内需要大量的变量图片,所以想问有没有可能使这个脚本改成多个变量操控多个图片的效果?类似于其中一个变量作为背景图,其中一个变量改变代表血量的心,其中一个变量改变人物立绘的模样?
#==============================================================================
# 本脚本来自[url]www.66rpg.com[/url],转载、使用请保留此信息
#==============================================================================
#==============================================================================
# ** 菜单中显示图片
#==============================================================================
module MoShowPicOnMenu
Var = 1
# 变量ID 当变量值为-1时不显示图片 否则显示List[变量值]号图片
List = [
# ["图片名", X坐标, Y坐标, 不透明度(可选)],
["Leaves", 0, 0], #0
]
# 图片列表 图片应该放在Graphics/Picture下
# 序号从0开始 注意 游戏一开始的时候变量均为0
List.each{|d| d[3] ||= 255} # 不要动
end
#==============================================================================
# ** Scene_Menu
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
alias :mo_show_pic_on_menu_start :start
def start
mo_show_pic_on_menu_start
mo_show_pic_on_menu_draw_picture
end
#--------------------------------------------------------------------------
# * Create Picture On Menu
#--------------------------------------------------------------------------
def mo_show_pic_on_menu_draw_picture
return if (index = $game_variables[MoShowPicOnMenu::Var]) == -1
@mo_show_pic_on_menu_pic = Sprite.new.tap{|s|
pic, x, y, opa = MoShowPicOnMenu::List[index]
s.bitmap = Cache.picture pic
s.x, s.y, s.opacity = x, y, opa
}
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
alias :mo_show_pic_on_menu_terminate :terminate
def terminate
mo_show_pic_on_menu_terminate
if @mo_show_pic_on_menu_pic
@mo_show_pic_on_menu_pic.bitmap.dispose
@mo_show_pic_on_menu_pic.dispose
end
end
end
#==============================================================================
# 本脚本来自[url]www.66rpg.com[/url],转载、使用请保留此信息
#==============================================================================
#==============================================================================
# ** 菜单中显示图片
#==============================================================================
module MoShowPicOnMenu
Var = 1
# 变量ID 当变量值为-1时不显示图片 否则显示List[变量值]号图片
List = [
# ["图片名", X坐标, Y坐标, 不透明度(可选)],
["Leaves", 0, 0], #0
]
# 图片列表 图片应该放在Graphics/Picture下
# 序号从0开始 注意 游戏一开始的时候变量均为0
List.each{|d| d[3] ||= 255} # 不要动
end
#==============================================================================
# ** Scene_Menu
#==============================================================================
class Scene_Menu
#--------------------------------------------------------------------------
# * Start Processing
#--------------------------------------------------------------------------
alias :mo_show_pic_on_menu_start :start
def start
mo_show_pic_on_menu_start
mo_show_pic_on_menu_draw_picture
end
#--------------------------------------------------------------------------
# * Create Picture On Menu
#--------------------------------------------------------------------------
def mo_show_pic_on_menu_draw_picture
return if (index = $game_variables[MoShowPicOnMenu::Var]) == -1
@mo_show_pic_on_menu_pic = Sprite.new.tap{|s|
pic, x, y, opa = MoShowPicOnMenu::List[index]
s.bitmap = Cache.picture pic
s.x, s.y, s.opacity = x, y, opa
}
end
#--------------------------------------------------------------------------
# * Termination Processing
#--------------------------------------------------------------------------
alias :mo_show_pic_on_menu_terminate :terminate
def terminate
mo_show_pic_on_menu_terminate
if @mo_show_pic_on_menu_pic
@mo_show_pic_on_menu_pic.bitmap.dispose
@mo_show_pic_on_menu_pic.dispose
end
end
end
。
-
img/QXVvRGRLamVST0hEMWJqRUk2NDgvd2dtb2s0NTU2bmZxcEFZY1RZeXFCL3RPMGMrd1Jic2d3PT0.png
(57.7 KB, 下载次数: 31)
作者: fux2 时间: 2018-8-8 20:11
随便照着乱糊了一个,用法和之前一样,参考脚本开头写的格式继续写就可以了。
#==============================================================================
# 本脚本来自rpg.blue,转载、使用请保留此信息
#==============================================================================
module Fux2
MenuPicInfo = Struct.new(:fn,:x,:y,:opacity)
PicList = {}
# 格式 MenuPicInfo.new("图片名",x,y,opa),坐标和透明度可选
# 坐标不填默认0,不透明度不填默认255
PicList[1] = [
MenuPicInfo.new("变量1为0时文件名",100,100),
MenuPicInfo.new("变量1为1时文件名",300,100)
]
PicList[2] = [
MenuPicInfo.new("变量2为0时文件名",100,300),
MenuPicInfo.new("变量2为1时文件名",300,300,180),
MenuPicInfo.new("变量2为2时文件名",300,300)
]
end
class Scene_Menu
alias _fux_start start
def start
_fux_start
create_menu_picture
end
def create_menu_picture
@backSprites = []
Fux2::PicList.keys.sort.each do |key|
value = $game_variables[key]
next if value<0
info = Fux2::PicList[key][value]
spr = Sprite.new
spr.bitmap = Cache.picture(info.fn)
spr.x,spr.y = info.x || 0,info.y || 0
spr.opacity = info.opacity || 255
@backSprites << spr
end
end
alias _fux_terminate terminate
def terminate
_fux_terminate
@backSprites && @backSprites.each{|spr| spr.dispose}
end
end
#==============================================================================
# 本脚本来自rpg.blue,转载、使用请保留此信息
#==============================================================================
module Fux2
MenuPicInfo = Struct.new(:fn,:x,:y,:opacity)
PicList = {}
# 格式 MenuPicInfo.new("图片名",x,y,opa),坐标和透明度可选
# 坐标不填默认0,不透明度不填默认255
PicList[1] = [
MenuPicInfo.new("变量1为0时文件名",100,100),
MenuPicInfo.new("变量1为1时文件名",300,100)
]
PicList[2] = [
MenuPicInfo.new("变量2为0时文件名",100,300),
MenuPicInfo.new("变量2为1时文件名",300,300,180),
MenuPicInfo.new("变量2为2时文件名",300,300)
]
end
class Scene_Menu
alias _fux_start start
def start
_fux_start
create_menu_picture
end
def create_menu_picture
@backSprites = []
Fux2::PicList.keys.sort.each do |key|
value = $game_variables[key]
next if value<0
info = Fux2::PicList[key][value]
spr = Sprite.new
spr.bitmap = Cache.picture(info.fn)
spr.x,spr.y = info.x || 0,info.y || 0
spr.opacity = info.opacity || 255
@backSprites << spr
end
end
alias _fux_terminate terminate
def terminate
_fux_terminate
@backSprites && @backSprites.each{|spr| spr.dispose}
end
end
作者: 岸边鸬鹚 时间: 2018-8-9 08:28
这个立绘!!难道是微博上F开头的那位太太吗!
作者: 肠腑子 时间: 2018-8-9 12:53
非常感谢!!!!【土下跪】
作者: 肠腑子 时间: 2018-8-9 12:54
是,是的^q^【】
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |