Project1

标题: 二级菜单如何实现 [打印本页]

作者: 吸血鬼之妻    时间: 2012-9-3 19:02
标题: 二级菜单如何实现
比如说在主菜单点进状态时
不是直接进入状态界面,而是弹出另一个选择窗口
一:查看状态
二:什么什么
怎么实现dsu_plus_rewardpost_czw
作者: 怪蜀黍    时间: 2012-9-4 13:09
本帖最后由 protosssonny 于 2012-9-4 13:10 编辑

嗷呜~~
范例在这里: Project2.rar (238.48 KB, 下载次数: 285)
RUBY 代码复制
  1. #==============================================================================
  2. # ■ 状态选项的二级菜单(非大众化的定制脚本)
  3. #------------------------------------------------------------------------------
  4. #
  5. #   本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  6. #
  7. #   作者:protosssonny   
  8. #
  9. #==============================================================================
  10.  
  11. #==============================================================================
  12. # ■ Scene_Menu
  13. #------------------------------------------------------------------------------
  14. #  处理菜单画面的类。
  15. #==============================================================================
  16.  
  17. class Scene_Menu < Scene_Base
  18.   #--------------------------------------------------------------------------
  19.   # ● 开始处理
  20.   #--------------------------------------------------------------------------
  21.   def start
  22.     super
  23.     create_menu_background
  24.     create_command_window
  25.     @gold_window = Window_Gold.new(0, 360)
  26.     @status_window = Window_MenuStatus.new(160, 0)
  27.     @status_menu_window = Window_Command.new(160, ["查看状态", "什么什么"])
  28.     @status_menu_window.active = false
  29.     @status_menu_window.visible = false
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● 结束处理
  33.   #--------------------------------------------------------------------------
  34.   def terminate
  35.     super
  36.     dispose_menu_background
  37.     @command_window.dispose
  38.     @gold_window.dispose
  39.     @status_window.dispose
  40.     @status_menu_window.dispose
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● 更新画面
  44.   #--------------------------------------------------------------------------
  45.   def update
  46.     super
  47.     update_menu_background
  48.     @command_window.update
  49.     @gold_window.update
  50.     @status_window.update
  51.     @status_menu_window.update
  52.     if @command_window.active
  53.       update_command_selection
  54.     elsif @status_window.active
  55.       update_actor_selection
  56.     elsif @status_menu_window.active
  57.       status_menu_selection
  58.     end
  59.   end
  60.   #--------------------------------------------------------------------------
  61.   # ● 更新命令窗口
  62.   #--------------------------------------------------------------------------
  63.   def update_command_selection
  64.     if Input.trigger?(Input::B)
  65.       Sound.play_cancel
  66.       $scene = Scene_Map.new
  67.     elsif Input.trigger?(Input::C)
  68.       if $game_party.members.size == 0 and @command_window.index < 4
  69.         Sound.play_buzzer
  70.         return
  71.       elsif $game_system.save_disabled and @command_window.index == 4
  72.         Sound.play_buzzer
  73.         return
  74.       end
  75.       Sound.play_decision
  76.       case @command_window.index
  77.       when 0      # 物品
  78.         $scene = Scene_Item.new
  79.       when 1,2    # 技能、装备
  80.         start_actor_selection
  81.       when 3      # 状态  
  82.         start_status_menu
  83.       when 4      # 存档
  84.         $scene = Scene_File.new(true, false, false)
  85.       when 5      # 结束游戏
  86.         $scene = Scene_End.new
  87.       end
  88.     end
  89.   end  
  90.   #--------------------------------------------------------------------------
  91.   # ● 角色选择结束
  92.   #--------------------------------------------------------------------------
  93.   def end_actor_selection
  94.     @command_window.active = true
  95.     @status_window.active = false
  96.     @status_menu_window.active = false
  97.     @status_menu_window.visible = false
  98.     @status_window.index = -1
  99.   end
  100.   #--------------------------------------------------------------------------
  101.   # ● 开始状态的二级菜单
  102.   #--------------------------------------------------------------------------  
  103.   def start_status_menu
  104.     @command_window.active = false
  105.     @status_menu_window.active = true
  106.     @status_menu_window.visible = true
  107.   end  
  108.   #--------------------------------------------------------------------------
  109.   # ● 结束状态的二级菜单
  110.   #--------------------------------------------------------------------------  
  111.   def end_status_menu
  112.     @status_menu_window.active = false
  113.     @status_menu_window.visible = false
  114.     @command_window.active = true
  115.   end  
  116.   #--------------------------------------------------------------------------
  117.   # ● 状态的二级菜单的选择
  118.   #--------------------------------------------------------------------------  
  119.   def status_menu_selection
  120.     if Input.trigger?(Input::B)
  121.       Sound.play_cancel
  122.       end_status_menu
  123.     elsif Input.trigger?(Input::C)
  124.       Sound.play_decision
  125.       @status_menu_window.active = false
  126.     case @status_menu_window.index
  127.       when 0 # 查看状态
  128.         start_actor_selection
  129.       when 1 # “什么什么”在这里写命令,通常为$scene = 某某.new的形式
  130.         p "尚未设定“什么什么”的执行命令"
  131.       end  
  132.     end
  133.   end  
  134. end
[/pre]




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