设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2332|回复: 5
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
帖子
5
跳转到指定楼层
1
发表于 2015-3-27 14:42:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

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

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



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



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



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


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

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  這個類用來執行顯示ESC選單畫面的程式。
  5. #==============================================================================
  6.  
  7. class Scene_Menu < Scene_Base
  8.   #--------------------------------------------------------------------------
  9.   # ● 物件初始化
  10.   #     menu_index : 命令游標的起始位置
  11.   #--------------------------------------------------------------------------
  12.   def initialize(menu_index = 0)
  13.     @menu_index = menu_index
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 开始处理
  17.   #--------------------------------------------------------------------------
  18.   def start
  19.     super
  20.     create_menu_background
  21.     create_command_window
  22.     @status_window = Window_MenuStatus.new(142, 287)
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 程式中止
  26.   #--------------------------------------------------------------------------
  27.   def terminate
  28.     super
  29.     dispose_menu_background
  30.     @command_window.dispose
  31.     @status_window.dispose
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 帧更新
  35.   #--------------------------------------------------------------------------
  36.   def update
  37.     super
  38.     update_menu_background
  39.     @command_window.update
  40.     @status_window.update
  41.     if @command_window.active
  42.       update_command_selection
  43.     elsif @status_window.active
  44.       update_actor_selection
  45.     end
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● 创建命令视窗
  49.   #--------------------------------------------------------------------------
  50.   def create_command_window
  51.     s1 = Vocab::item
  52.     s2 = Vocab::status
  53.     s3 = Vocab::save
  54.     s4 = Vocab::game_end
  55.     @command_window = Window_Command.new(140, [s1, s2, s3, s4])
  56.     @command_window.x = 1       # 改变窗口的x坐标
  57.     @command_window.y = 287       # 改变窗口的y坐标
  58.     @command_window.height = 128  # 固定窗口的垂直宽度
  59.     @command_window.width = 140   # 固定窗口的横向宽度
  60.     @command_window.index = @menu_index
  61.     if $game_party.members.size == 0          # 如果无人在队伍内
  62.       @command_window.draw_item(0, false)     # 禁用[用品]
  63.       @command_window.draw_item(1, false)     # 禁用[状态]
  64.     end
  65.     if $game_system.save_disabled             # 如果禁止存档
  66.       @command_window.draw_item(2, false)     # 禁用[存档]
  67.     end
  68.   end
  69.   #--------------------------------------------------------------------------
  70.   # ● 更新指令選擇輸入資訊
  71.   #--------------------------------------------------------------------------
  72.   def update_command_selection
  73.     if Input.trigger?(Input::B)
  74.       Sound.play_cancel
  75.       $scene = Scene_Map.new
  76.     elsif Input.trigger?(Input::C)
  77.       if $game_party.members.size == 0 and @command_window.index < 4
  78.         Sound.play_buzzer
  79.         return
  80.       elsif $game_system.save_disabled and @command_window.index == 2
  81.         Sound.play_buzzer
  82.         return
  83.       end
  84.       Sound.play_decision
  85.       case @command_window.index
  86.       when 0      # 项目
  87.         $scene = Scene_Item.new
  88.       when 1  # 技能,装备,状态
  89.         start_actor_selection
  90.       when 2      # 保存
  91.         $scene = Scene_File.new(true, false, false)
  92.       when 3      # 游戏结束
  93.         $scene = Scene_End.new
  94.       end
  95.     end
  96.   end
  97.   #--------------------------------------------------------------------------
  98.   # ● 開始接收主角選擇指令輸入資訊
  99.   #--------------------------------------------------------------------------
  100.   def start_actor_selection
  101.     @command_window.active = false
  102.     @status_window.active = true
  103.     if $game_party.last_actor_index < @status_window.item_max
  104.       @status_window.index = $game_party.last_actor_index
  105.     else
  106.       @status_window.index = 0
  107.     end
  108.   end
  109.   #--------------------------------------------------------------------------
  110.   # ● 停止接收主角選擇指令輸入資訊
  111.   #--------------------------------------------------------------------------
  112.   def end_actor_selection
  113.     @command_window.active = true
  114.     @status_window.active = false
  115.     @status_window.index = -1
  116.   end
  117.   #--------------------------------------------------------------------------
  118.   # ● 更新主角選擇指令輸入資訊
  119.   #--------------------------------------------------------------------------
  120.   def update_actor_selection
  121.     if Input.trigger?(Input::B)
  122.       Sound.play_cancel
  123.       end_actor_selection
  124.     elsif Input.trigger?(Input::C)
  125.       $game_party.last_actor_index = @status_window.index
  126.       Sound.play_decision
  127.       case @command_window.index
  128.       when 1  # 状态
  129.         $scene = Scene_Status.new(@status_window.index)
  130.       end
  131.     end
  132.   end
  133. end





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

Lv1.梦旅人

天空之神

梦石
0
星屑
156
在线时间
173 小时
注册时间
2009-5-3
帖子
612
来自 5楼
发表于 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 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4504
在线时间
5228 小时
注册时间
2009-4-29
帖子
14318

贵宾

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

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
帖子
5
3
 楼主| 发表于 2015-3-27 23:56:20 | 只看该作者
怪蜀黍 发表于 2015-3-27 16:25
看样子队伍最大人数是2吗

嗯嗯是的!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
7 小时
注册时间
2015-3-27
帖子
5
4
 楼主| 发表于 2015-4-2 15:44:49 | 只看该作者


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

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

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

求跪会改的高手帮个忙啊嘤
回复 支持 反对

使用道具 举报

Lv1.梦旅人

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


噢噢噢噢大感谢!!!!!TUT超级大感谢!!!
测试效果如下:


_(┐「ε:)_简直赞爆了…
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-24 16:42

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表