Project1

标题: 怎么把菜单按键横向排布 [打印本页]

作者: ni838746001    时间: 2011-7-28 10:47
标题: 怎么把菜单按键横向排布
比如把按键摆成“物品”“装备”“状态”“存档”“结束游戏”
而不是竖状的“物品”“
                  ”“装备”
                   “状态”
                   “存档”
                   “结束游戏”  dsu_plus_rewardpost_czw
作者: 秋庭里香    时间: 2011-7-28 11:25
本帖最后由 秋庭里香 于 2011-7-28 11:53 编辑

乱写了一个~~~
  1. #==============================================================================
  2. # ■ Window_Command
  3. #------------------------------------------------------------------------------
  4. #  一般的命令选择行窗口。
  5. #==============================================================================

  6. class Window_Command2 < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     width    : 窗口的宽
  10.   #     commands : 命令字符串序列
  11.   #--------------------------------------------------------------------------
  12.   def initialize(width, commands)
  13.     # 由命令的个数计算出窗口的高
  14.     super(0, 0, commands.size * width + 32, 64)
  15.     @item_max = commands.size
  16.     @commands = commands
  17.     @column_max = commands.size
  18.     @save_width = width
  19.     self.contents = Bitmap.new(@item_max * width,64 - 32)
  20.     refresh
  21.     self.index = 0
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 刷新
  25.   #--------------------------------------------------------------------------
  26.   def refresh
  27.     self.contents.clear
  28.     for i in 0...@item_max
  29.       draw_item(i, normal_color)
  30.     end
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 描绘项目
  34.   #     index : 项目编号
  35.   #     color : 文字色
  36.   #--------------------------------------------------------------------------
  37.   def draw_item(index, color)
  38.     self.contents.font.color = color
  39.     rect = Rect.new(@save_width / 4 + @save_width * index, 4, self.contents.width, 32)
  40.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  41.     self.contents.draw_text(rect, @commands[index])
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 项目无效化
  45.   #     index : 项目编号
  46.   #--------------------------------------------------------------------------
  47.   def disable_item(index)
  48.     draw_item(index, disabled_color)
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 更新光标矩形
  52.   #--------------------------------------------------------------------------
  53.   def update_cursor_rect
  54.     self.cursor_rect.set(@index * @save_width - 4, 4, @save_width, 32)
  55.   end
  56. end
复制代码
把这个脚本插入到Main前面,接着搜索——
    @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])

替换为——
    @command_window = Window_Command2.new(101.5, [s1, s2, s3, s4, s5, s6])
    @command_window.z = 1000

然后就OK了~~

另外我记得有一个华丽菜单的脚本里也有这个东西,而且其他窗口都排版好了。
作者: ni838746001    时间: 2011-7-28 11:41
秋庭里香 发表于 2011-7-28 11:25
乱写了一个~~~把这个脚本插入到Main前面,接着搜索——
    @command_window = Window_Command.new(160, [s ...

那在标题那里的呢?
作者: 秋庭里香    时间: 2011-7-28 11:58
本帖最后由 秋庭里香 于 2011-7-28 11:59 编辑

上面那个脚本有一个小bug,现在更新下。
  1. #==============================================================================
  2. # ■ Window_Command
  3. #------------------------------------------------------------------------------
  4. #  一般的命令选择行窗口。
  5. #==============================================================================

  6. class Window_Command2 < Window_Selectable
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     width    : 窗口的宽
  10.   #     commands : 命令字符串序列
  11.   #--------------------------------------------------------------------------
  12.   def initialize(width, commands)
  13.     # 由命令的个数计算出窗口的高
  14.     super(0, 0, commands.size * width + 32, 64)
  15.     @item_max = commands.size
  16.     @commands = commands
  17.     @column_max = commands.size
  18.     @save_width = width
  19.     self.contents = Bitmap.new(@item_max * width,64 - 32)
  20.     refresh
  21.     self.index = 0
  22.   end
  23.   #--------------------------------------------------------------------------
  24.   # ● 刷新
  25.   #--------------------------------------------------------------------------
  26.   def refresh
  27.     self.contents.clear
  28.     for i in 0...@item_max
  29.       draw_item(i, normal_color)
  30.     end
  31.   end
  32.   #--------------------------------------------------------------------------
  33.   # ● 描绘项目
  34.   #     index : 项目编号
  35.   #     color : 文字色
  36.   #--------------------------------------------------------------------------
  37.   def draw_item(index, color)
  38.     self.contents.font.color = color
  39.     rect = Rect.new(@save_width / 4 + @save_width * index, 4, @save_width - 8, 32)
  40.     self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
  41.     self.contents.draw_text(rect, @commands[index])
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● 项目无效化
  45.   #     index : 项目编号
  46.   #--------------------------------------------------------------------------
  47.   def disable_item(index)
  48.     draw_item(index, disabled_color)
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 更新光标矩形
  52.   #--------------------------------------------------------------------------
  53.   def update_cursor_rect
  54.     self.cursor_rect.set(@index * @save_width - 4, 4, @save_width, 32)
  55.   end
  56. end
复制代码
标题的话,搜索 @command_window = Window_Command.new(192, [s1, s2, s3])
改为 @command_window = Window_Command2.new(100, [s1, s2, s3])就行了,另外这里的100可以修改,它是一个控制宽度的参数。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1