查看: 2821|回复: 5

[已经解决] 如何修改esc菜单横向排列人物头像?

[复制链接]
梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
回帖
4
发表于 2015-3-27 14:42:15 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 黑溟言 于 2015-3-27 14:42 编辑

RT,正在修改游戏内的菜单,目前效果如下

3.png

但是如果有队友加入的话就会变成这样OTZ

4.png

然后现在大致想要修改成这个样子…
圈选的地方不显示红蓝条,改为显示队友的头像

1.jpg

5.jpg     //只是开了画图软件简单举了个栗子…


现在也就只动了Scene_Menu和Window_Status里面的一部分代码,之后我就不知道该怎么整了OTZ
Window_Status内只是把不想显示的一些东西注释了而已,而且也搞不明白要怎么样才能把职业改到显示在名字或者lv的下面OTZ
Scene_Menu的话,代码贴在下面…不知道有没有必要总之贴上来方便请教…

[pre lang="ruby" line="1"]#==============================================================================
# ■ Scene_Menu
#------------------------------------------------------------------------------
#  這個類用來執行顯示ESC選單畫面的程式。
#==============================================================================

class Scene_Menu < Scene_Base
  #--------------------------------------------------------------------------
  # ● 物件初始化
  #     menu_index : 命令游標的起始位置
  #--------------------------------------------------------------------------
  def initialize(menu_index = 0)
    @menu_index = menu_index
  end
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    create_menu_background
    create_command_window
    @status_window = Window_MenuStatus.new(142, 287)
  end
  #--------------------------------------------------------------------------
  # ● 程式中止
  #--------------------------------------------------------------------------
  def terminate
    super
    dispose_menu_background
    @command_window.dispose
    @status_window.dispose
  end
  #--------------------------------------------------------------------------
  # ● 帧更新
  #--------------------------------------------------------------------------
  def update
    super
    update_menu_background
    @command_window.update
    @status_window.update
    if @command_window.active
      update_command_selection
    elsif @status_window.active
      update_actor_selection
    end
  end
  #--------------------------------------------------------------------------
  # ● 创建命令视窗
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::item
    s2 = Vocab::status
    s3 = Vocab::save
    s4 = Vocab::game_end
    @command_window = Window_Command.new(140, [s1, s2, s3, s4])
    @command_window.x = 1       # 改变窗口的x坐标
    @command_window.y = 287       # 改变窗口的y坐标
    @command_window.height = 128  # 固定窗口的垂直宽度
    @command_window.width = 140   # 固定窗口的横向宽度
    @command_window.index = @menu_index
    if $game_party.members.size == 0          # 如果无人在队伍内
      @command_window.draw_item(0, false)     # 禁用[用品]
      @command_window.draw_item(1, false)     # 禁用[状态]
    end
    if $game_system.save_disabled             # 如果禁止存档
      @command_window.draw_item(2, false)     # 禁用[存档]
    end
  end
  #--------------------------------------------------------------------------
  # ● 更新指令選擇輸入資訊
  #--------------------------------------------------------------------------
  def update_command_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      $scene = Scene_Map.new
    elsif Input.trigger?(Input::C)
      if $game_party.members.size == 0 and @command_window.index < 4
        Sound.play_buzzer
        return
      elsif $game_system.save_disabled and @command_window.index == 2
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      case @command_window.index
      when 0      # 项目
        $scene = Scene_Item.new
      when 1  # 技能,装备,状态
        start_actor_selection
      when 2      # 保存
        $scene = Scene_File.new(true, false, false)
      when 3      # 游戏结束
        $scene = Scene_End.new
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 開始接收主角選擇指令輸入資訊
  #--------------------------------------------------------------------------
  def start_actor_selection
    @command_window.active = false
    @status_window.active = true
    if $game_party.last_actor_index < @status_window.item_max
      @status_window.index = $game_party.last_actor_index
    else
      @status_window.index = 0
    end
  end
  #--------------------------------------------------------------------------
  # ● 停止接收主角選擇指令輸入資訊
  #--------------------------------------------------------------------------
  def end_actor_selection
    @command_window.active = true
    @status_window.active = false
    @status_window.index = -1
  end
  #--------------------------------------------------------------------------
  # ● 更新主角選擇指令輸入資訊
  #--------------------------------------------------------------------------
  def update_actor_selection
    if Input.trigger?(Input::B)
      Sound.play_cancel
      end_actor_selection
    elsif Input.trigger?(Input::C)
      $game_party.last_actor_index = @status_window.index
      Sound.play_decision
      case @command_window.index
      when 1  # 状态
        $scene = Scene_Status.new(@status_window.index)
      end
    end
  end
end
[/pre]




_(┐「ε:)_跪求会脚本的前辈帮忙指点一下,我捣鼓半天了还是不知道要怎么改到隔壁,不胜感激!!!!゚(つд`゚)

天空之神

梦石
0
星屑
156
在线时间
173 小时
注册时间
2009-5-3
回帖
552
发表于 2015-4-8 22:34:51 | 显示全部楼层
RGSS的绘图确实比较恶心,纯靠坐标来定位的……
我对于Window_Status的修改建议如下:
  1. #==============================================================================
  2. # ■ Window_MenuStatus
  3. #------------------------------------------------------------------------------
  4. #  显示菜单画面和同伴状态的窗口。
  5. #==============================================================================

  6. class Window_MenuStatus < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     x      : 窗口 X 座标
  10.   #     y      : 窗口 Y 座标
  11.   #--------------------------------------------------------------------------
  12.   def initialize(x, y)
  13.     super(x, y, 400, 4*WLH+32)
  14.     refresh
  15.     self.active = false
  16.     self.index = -1
  17.   end
  18.   #--------------------------------------------------------------------------
  19.   # ● 刷新
  20.   #--------------------------------------------------------------------------
  21.   def refresh
  22.     self.contents.clear
  23.     @item_max = $game_party.members.size
  24.     for actor in $game_party.members
  25.       draw_actor_face(actor, 2+actor.index*192, 2, 92)
  26.       x = 104 + actor.index* 196
  27.       y = WLH / 2
  28.       draw_actor_name(actor, x, y)
  29.       draw_actor_class(actor, x, y + WLH * 2)
  30.       draw_actor_level(actor, x, y + WLH * 1)
  31.     end
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 更新光标
  35.   #--------------------------------------------------------------------------
  36.   def update_cursor
  37.     if @index < 0               # 无光标
  38.       self.cursor_rect.empty
  39.     elsif @index < @item_max    # 一般
  40.       @width = contents.width * 0.5
  41.       self.cursor_rect.set(@index * @width, 0 , @width, 96)
  42.     elsif @index >= 100         # 使用本身
  43.       self.cursor_rect.set(0, (@index - 100) * 96, contents.width, 96)
  44.     else                        # 全体
  45.       self.cursor_rect.set(0, 0, contents.width, @item_max * 96)
  46.     end
  47.   end
  48. end
复制代码
不建议lz擅自更改类名,有可能会出现其他的问题,最好还是使用标准的 Window_Status 作为类名。
我的代码版本和lz不一样,所以没法测试了……

评分

参与人数 1梦石 +1 收起 理由
Luciffer + 1 认可答案

查看全部评分

回复

使用道具 举报

八宝粥的基叔

梦石
0
星屑
4957
在线时间
5234 小时
注册时间
2009-4-29
回帖
14054

贵宾

发表于 2015-3-27 16:25:06 | 显示全部楼层
看样子队伍最大人数是2吗
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
回帖
4
 楼主| 发表于 2015-3-27 23:56:20 | 显示全部楼层
怪蜀黍 发表于 2015-3-27 16:25
看样子队伍最大人数是2吗

嗯嗯是的!
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
回帖
4
 楼主| 发表于 2015-4-2 15:44:49 | 显示全部楼层
QQ截图20150402153744.png

OTZ这几天捣鼓来捣鼓去也就只是把职业改下去了,到底要如何把队友的信息放上去还真搞不懂

PS问一下,RGSS2能够像网页那样有个float属性之类的么…要是能做出那样的效果我就会弄了OTZ

有点搞不懂脚本默认是要规定了大小区域纵向排列还是规定了就只能这样…TUT没学过ruby真心搞不懂

求跪会改的高手帮个忙啊嘤
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
回帖
4
 楼主| 发表于 2015-4-10 03:16:21 | 显示全部楼层
本帖最后由 黑溟言 于 2015-4-10 03:32 编辑
小鱼子 发表于 2015-4-8 22:34
RGSS的绘图确实比较恶心,纯靠坐标来定位的……
我对于Window_Status的修改建议如下:不建议lz擅自更改类名 ...


噢噢噢噢大感谢!!!!!TUT超级大感谢!!!
测试效果如下:
QQ图片20150410032355.jpg

_(┐「ε:)_简直赞爆了…
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部