Project1

标题: 菜单选项窗口怎么样增加一个"下一页"? [打印本页]

作者: 纳尔德    时间: 2011-9-28 17:17
标题: 菜单选项窗口怎么样增加一个"下一页"?
就是
物品
技能
……
下一页

按下  下一页  后
就转到另一个选项窗口。dsu_plus_rewardpost_czw
作者: fux2    时间: 2011-9-28 17:58
建立多个WINDOW_COMMAND切来切去啦.
作者: 纳尔德    时间: 2011-9-28 18:01
fux2 发表于 2011-9-28 17:58
建立多个WINDOW_COMMAND切来切去啦.

就是感觉好麻烦的说..有点繁杂了
作者: 各种压力的猫君    时间: 2011-9-28 18:02
丢个范例给你,新建个工程插到main上面
  1. #==============================================================================
  2. # ■ 2PMenu
  3. #------------------------------------------------------------------------------
  4. #  将RMVX默认的菜单扩展到两页的范例
  5. #------------------------------------------------------------------------------
  6. #   1.0 2011-9-28 初版 by 各种压力的猫君
  7. #==============================================================================
  8. module MPMenu_Config
  9. #==============================================================================
  10. # 【设定段】
  11. #------------------------------------------------------------------------------
  12. #第2页的选项文字
  13. AMENU1 = "物品2"
  14. AMENU2 = "技能2"
  15. AMENU3 = "装备2"
  16. AMENU4 = "状态2"
  17. AMENU5 = "其它选项A"
  18. AMENU6 = "其它选项B"
  19. #==============================================================================
  20. end

  21. class Scene_Menu < Scene_Base
  22.   #--------------------------------------------------------------------------
  23.   # ● 初始化对像
  24.   #     menu_index : 命令窗口光标初始位置
  25.   #--------------------------------------------------------------------------
  26.   def initialize(menu_index = 0)
  27.     @menu_index = menu_index
  28.   end
  29.   #--------------------------------------------------------------------------
  30.   # ● 开始处理
  31.   #--------------------------------------------------------------------------
  32.   def start
  33.     super
  34.     $menupage = 1 if $menupage == nil
  35.     create_menu_background
  36.     create_command_window
  37.     @gold_window = Window_Gold.new(0, 360)
  38.     @status_window = Window_MenuStatus.new(160, 0)
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 结束处理
  42.   #--------------------------------------------------------------------------
  43.   def terminate
  44.     super
  45.     dispose_menu_background
  46.     @command_window.dispose
  47.     @gold_window.dispose
  48.     @status_window.dispose
  49.   end
  50.   #--------------------------------------------------------------------------
  51.   # ● 翻页处理
  52.   #--------------------------------------------------------------------------
  53.   def turnpage
  54.     dispose_menu_background
  55.     @command_window.dispose
  56.     create_menu_background
  57.     create_command_window
  58.   end
  59.   #--------------------------------------------------------------------------
  60.   # ● 更新画面
  61.   #--------------------------------------------------------------------------
  62.   def update
  63.     super
  64.     update_menu_background
  65.     @command_window.update
  66.     @gold_window.update
  67.     @status_window.update
  68.     if @command_window.active
  69.       update_command_selection
  70.     elsif @status_window.active
  71.       update_actor_selection
  72.     end
  73.   end
  74.   #--------------------------------------------------------------------------
  75.   # ● 生成命令窗口
  76.   #--------------------------------------------------------------------------
  77.   def create_command_window
  78.     if $menupage == 1
  79.       s1 = Vocab::item
  80.       s2 = Vocab::skill
  81.       s3 = Vocab::equip
  82.       s4 = Vocab::status
  83.       s5 = Vocab::save
  84.       s6 = Vocab::game_end
  85.       s7 = "下一页"
  86.     elsif $menupage == 2
  87.       s1 = MPMenu_Config::AMENU1
  88.       s2 = MPMenu_Config::AMENU2
  89.       s3 = MPMenu_Config::AMENU3
  90.       s4 = MPMenu_Config::AMENU4
  91.       s5 = MPMenu_Config::AMENU5
  92.       s6 = MPMenu_Config::AMENU6
  93.       s7 = "上一页"
  94.     end
  95.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  96.     @command_window.index = @menu_index
  97.     if $game_party.members.size == 0          # 如果队伍为空
  98.       @command_window.draw_item(0, false)     # 无效化物品选项
  99.       @command_window.draw_item(1, false)     # 无效化技能选项
  100.       @command_window.draw_item(2, false)     # 无效化装备选项
  101.       @command_window.draw_item(3, false)     # 无效化状态选项
  102.     end
  103.     if $game_system.save_disabled             # 如果禁止存档
  104.       @command_window.draw_item(4, false)     # 无效化存档选项
  105.     end
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 更新命令窗口
  109.   #--------------------------------------------------------------------------
  110.   def update_command_selection
  111.     if Input.trigger?(Input::B)
  112.       Sound.play_cancel
  113.       $scene = Scene_Map.new
  114.       $menupage = nil
  115.     end
  116. #------------------------------------------------------------------------------
  117.     if $menupage == 1            #【第1页的选项命令】
  118.       if Input.trigger?(Input::C)
  119.         if $game_party.members.size == 0 and @command_window.index < 4
  120.           Sound.play_buzzer
  121.           return
  122.         elsif $game_system.save_disabled and @command_window.index == 4
  123.           Sound.play_buzzer
  124.           return
  125.         end
  126.         Sound.play_decision
  127.         case @command_window.index
  128.         when 0      # 物品
  129.           $scene = Scene_Item.new
  130.         when 1,2,3  # 技能、装备、状态
  131.           start_actor_selection
  132.         when 4      # 存档
  133.           $scene = Scene_File.new(true, false, false)
  134.         when 5      # 结束游戏
  135.           $scene = Scene_End.new
  136.         when 6      # 翻页
  137.           $menupage = 2
  138.           turnpage
  139.         end
  140.       end
  141. #------------------------------------------------------------------------------
  142.     elsif $menupage == 2            #【第2页的选项命令】
  143.       if Input.trigger?(Input::C)
  144.         if $game_party.members.size == 0 and @command_window.index < 4
  145.           Sound.play_buzzer
  146.           return
  147.         elsif $game_system.save_disabled and @command_window.index == 4
  148.           Sound.play_buzzer
  149.           return
  150.         end
  151.         Sound.play_decision
  152.         case @command_window.index
  153.         when 0      # 物品2
  154.           $scene = Scene_Item.new
  155.         when 1,2,3  # 技能2、装备2、状态2
  156.           start_actor_selection
  157.         when 4      # 其它选项A
  158.           print "这里可以自己扩展"
  159.         when 5      # 其它选项B
  160.           print "这里可以自己扩展"
  161.         when 6      # 翻页
  162.           $menupage = 1
  163.           turnpage
  164.         end
  165.       end
  166. #------------------------------------------------------------------------------
  167.     end
  168.   end
  169.   #--------------------------------------------------------------------------
  170.   # ● 角色选择开始
  171.   #--------------------------------------------------------------------------
  172.   def start_actor_selection
  173.     @command_window.active = false
  174.     @status_window.active = true
  175.     if $game_party.last_actor_index < @status_window.item_max
  176.       @status_window.index = $game_party.last_actor_index
  177.     else
  178.       @status_window.index = 0
  179.     end
  180.   end
  181.   #--------------------------------------------------------------------------
  182.   # ● 角色选择结束
  183.   #--------------------------------------------------------------------------
  184.   def end_actor_selection
  185.     @command_window.active = true
  186.     @status_window.active = false
  187.     @status_window.index = -1
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● 角色选择更新
  191.   #--------------------------------------------------------------------------
  192.   def update_actor_selection
  193.     if Input.trigger?(Input::B)
  194.       Sound.play_cancel
  195.       end_actor_selection
  196.     elsif Input.trigger?(Input::C)
  197.       $game_party.last_actor_index = @status_window.index
  198.       Sound.play_decision
  199.       case @command_window.index
  200.       when 1  # 技能
  201.         $scene = Scene_Skill.new(@status_window.index)
  202.       when 2  # 装备
  203.         $scene = Scene_Equip.new(@status_window.index)
  204.       when 3  # 状态
  205.         $scene = Scene_Status.new(@status_window.index)
  206.       end
  207.     end
  208.   end
  209. end
复制代码





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