查看: 3498|回复: 4

[已经解决] 在菜单中贴多个图片的方法?

[复制链接]
梦石
11
星屑
1239
在线时间
224 小时
注册时间
2015-8-5
回帖
19
发表于 2018-8-8 20:11:19 | 显示全部楼层 |阅读模式
悬赏50星屑已解决
我之前使用这个脚本实现了图上的界面效果,虽然很好使用,但因为游戏内需要大量的变量图片,所以想问有没有可能使这个脚本改成多个变量操控多个图片的效果?类似于其中一个变量作为背景图,其中一个变量改变代表血量的心,其中一个变量改变人物立绘的模样?

[pre lang="ruby"]#==============================================================================
# 本脚本来自www.66rpg.com,转载、使用请保留此信息
#==============================================================================

#==============================================================================
# ** 菜单中显示图片
#==============================================================================
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
[/pre]。
img/QXVvRGRLamVST0hEMWJqRUk2NDgvd2dtb2s0NTU2bmZxcEFZY1RZeXFCL3RPMGMrd1Jic2d3PT0.png

最佳答案

查看完整内容

随便照着乱糊了一个,用法和之前一样,参考脚本开头写的格式继续写就可以了。 [pre lang="ruby"]#============================================================================== # 本脚本来自rpg.blue,转载、使用请保留此信息 #============================================================================== module Fux2 MenuPicInfo = Struct.new(:fn,:x,:y,:opacity) PicList = {} # 格式 MenuPicInfo.n ...

老黄鸡

梦石
4
星屑
45705
在线时间
7948 小时
注册时间
2009-7-6
回帖
13338

MZ评测员RM创作大赛01组委会开拓者贵宾

发表于 2018-8-8 20:11:20 | 显示全部楼层
随便照着乱糊了一个,用法和之前一样,参考脚本开头写的格式继续写就可以了。


[pre lang="ruby"]#==============================================================================
# 本脚本来自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
[/pre]
RGDirect - DirectX驱动的RGSS,点我了解.
(排满,暂停)RM全系列成套系统定制请联系QQ1213237796
不接受对其他插件维护的委托
回复

使用道具 举报

梦石
11
星屑
8893
在线时间
915 小时
注册时间
2017-9-28
回帖
379
发表于 2018-8-9 08:28:48 | 显示全部楼层
这个立绘!!难道是微博上F开头的那位太太吗!
只能画出残疾人的垃圾透明画手...工作繁忙不接单~
目前作品:瓶中精灵
组长!怨念请查收!
回复

使用道具 举报

梦石
11
星屑
1239
在线时间
224 小时
注册时间
2015-8-5
回帖
19
 楼主| 发表于 2018-8-9 12:53:57 | 显示全部楼层
fux2 发表于 2018-8-9 10:20
随便照着乱糊了一个,用法和之前一样,参考脚本开头写的格式继续写就可以了。

非常感谢!!!!【土下跪】
回复

使用道具 举报

梦石
11
星屑
1239
在线时间
224 小时
注册时间
2015-8-5
回帖
19
 楼主| 发表于 2018-8-9 12:54:34 | 显示全部楼层
岸边鸬鹚 发表于 2018-8-9 08:28
这个立绘!!难道是微博上F开头的那位太太吗!

是,是的^q^【】
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部