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

Project1

 找回密码
 注册会员
搜索

如何将菜单中许多选项整合在一个里面

查看数: 1848 | 评论数: 7 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2015-8-1 18:05

正文摘要:

例如,菜单里有一个“打造”选项,打造选项里又包含“武器”、“防具”、“饰品”,这三个子选项。

回复

梦无笙 发表于 2015-8-2 23:12:39
本帖最后由 梦无笙 于 2015-8-2 23:28 编辑

你这样写是不对的,你等着。
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  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.     #-------------------------------------------
  22.     create_command_window2
  23.     @command_window2.x = 160
  24.     @command_window2.y = 150
  25.     @command_window2.z = 101
  26.     @command_window2.active = false
  27.     @command_window2.visible = false
  28.     #-------------------------------------------
  29.     create_command_window
  30.     @gold_window = Window_Gold.new(0, 360)
  31.     @status_window = Window_MenuStatus.new(160, 0)
  32.   end
  33.   #--------------------------------------------------------------------------
  34.   # ● 结束处理
  35.   #--------------------------------------------------------------------------
  36.   def terminate
  37.     super
  38.     dispose_menu_background
  39.     @command_window.dispose
  40.     #-------------------------------------------
  41.     @command_window2.dispose
  42.     #-------------------------------------------
  43.     @gold_window.dispose
  44.     @status_window.dispose
  45.   end
  46.   #--------------------------------------------------------------------------
  47.   # ● 更新画面
  48.   #--------------------------------------------------------------------------
  49.   def update
  50.     super
  51.     update_menu_background
  52.     @command_window.update
  53.     #-------------------------------------------
  54.     @command_window2.update
  55.     #-------------------------------------------
  56.     @gold_window.update
  57.     @status_window.update
  58.     if @command_window.active
  59.       update_command_selection
  60.     #-------------------------------------------
  61.     elsif @command_window2.active
  62.       update_command_selection2
  63.     #-------------------------------------------
  64.     elsif @status_window.active
  65.       update_actor_selection
  66.     end
  67.   end
  68.   #--------------------------------------------------------------------------
  69.   # ● 生成命令窗口
  70.   #--------------------------------------------------------------------------
  71.   def create_command_window
  72.     s1 = Vocab::item
  73.     s2 = Vocab::skill
  74.     s3 = Vocab::equip
  75.     s4 = Vocab::status
  76.     s5 = Vocab::save
  77.     #-------------------------------------------
  78.     s6 = "打造"
  79.     #-------------------------------------------
  80.     s7 = Vocab::game_end
  81.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6, s7])
  82.     @command_window.index = @menu_index
  83.     if $game_party.members.size == 0          # 如果队伍为空
  84.       @command_window.draw_item(0, false)     # 无效化物品选项
  85.       @command_window.draw_item(1, false)     # 无效化技能选项
  86.       @command_window.draw_item(2, false)     # 无效化装备选项
  87.       @command_window.draw_item(3, false)     # 无效化状态选项
  88.     end
  89.     if $game_system.save_disabled             # 如果禁止存档
  90.       @command_window.draw_item(4, false)     # 无效化存档选项
  91.     end
  92.   end
  93.   #-------------------------------------------
  94.   def create_command_window2
  95.     @command_window2 = Window_Command.new(160,["武器","防具","饰品"])
  96.   end
  97.   #-------------------------------------------
  98.   #--------------------------------------------------------------------------
  99.   # ● 更新命令窗口
  100.   #--------------------------------------------------------------------------
  101.   def update_command_selection
  102.     if Input.trigger?(Input::B)
  103.       Sound.play_cancel
  104.       $scene = Scene_Map.new
  105.     elsif Input.trigger?(Input::C)
  106.       if $game_party.members.size == 0 and @command_window.index < 4
  107.         Sound.play_buzzer
  108.         return
  109.       elsif $game_system.save_disabled and @command_window.index == 4
  110.         Sound.play_buzzer
  111.         return
  112.       end
  113.       Sound.play_decision
  114.       case @command_window.index
  115.       when 0      # 物品
  116.         $scene = Scene_Item.new
  117.       when 1,2,3  # 技能、装备、状态
  118.         start_actor_selection
  119.       when 4      # 存档
  120.         $scene = Scene_File.new(true, false, false)
  121.       when 5      # 打造
  122.         @command_window.active = false
  123.         @command_window2.active = true
  124.         @command_window2.visible = true
  125.       when 6      # 结束游戏
  126.         $scene = Scene_End.new
  127.       end
  128.     end
  129.   end
  130.   #-------------------------------------------
  131.   def update_command_selection2
  132.     if Input.trigger?(Input::B)
  133.       Sound.play_cancel
  134.       @command_window2.active = false
  135.       @command_window2.visible = false
  136.       @command_window.active = true
  137.     elsif Input.trigger?(Input::C)
  138.       Sound.play_decision
  139.       case @command_window2.index
  140.       when 0
  141.     #    $scene = 调用武器打造的代码行
  142.       when 1
  143.     #    $scene = 调用防具打造的代码行
  144.       when 2
  145.     #    $scene = 调用饰品打造的代码行
  146.       end         
  147.     end
  148.   end
  149.   #-------------------------------------------
  150.   #--------------------------------------------------------------------------
  151.   # ● 角色选择开始
  152.   #--------------------------------------------------------------------------
  153.   def start_actor_selection
  154.     @command_window.active = false
  155.     @status_window.active = true
  156.     if $game_party.last_actor_index < @status_window.item_max
  157.       @status_window.index = $game_party.last_actor_index
  158.     else
  159.       @status_window.index = 0
  160.     end
  161.   end
  162.   #--------------------------------------------------------------------------
  163.   # ● 角色选择结束
  164.   #--------------------------------------------------------------------------
  165.   def end_actor_selection
  166.     @command_window.active = true
  167.     @status_window.active = false
  168.     @status_window.index = -1
  169.   end
  170.   #--------------------------------------------------------------------------
  171.   # ● 角色选择更新
  172.   #--------------------------------------------------------------------------
  173.   def update_actor_selection
  174.     if Input.trigger?(Input::B)
  175.       Sound.play_cancel
  176.       end_actor_selection
  177.     elsif Input.trigger?(Input::C)
  178.       $game_party.last_actor_index = @status_window.index
  179.       Sound.play_decision
  180.       case @command_window.index
  181.       when 1  # 技能
  182.         $scene = Scene_Skill.new(@status_window.index)
  183.       when 2  # 装备
  184.         $scene = Scene_Equip.new(@status_window.index)
  185.       when 3  # 状态
  186.         $scene = Scene_Status.new(@status_window.index)
  187.       end
  188.     end
  189.   end
  190. end

点评

多谢了!!  发表于 2015-8-3 10:16

评分

参与人数 1梦石 +1 收起 理由
丿梁丶小柒 + 1 认可答案

查看全部评分

梦无笙 发表于 2015-8-2 18:36:20
@command_window2.z = 10
梦无笙 发表于 2015-8-1 21:27:20
请调用方法
脚本开始的部分:
  1. def start
  2.    super
  3.    create_command_window
  4.    create_command_window2
  5.    ......
  6. end
复制代码

点评

可以了 3Q  发表于 2015-8-2 11:08
梦无笙 发表于 2015-8-1 19:00:54
首先你要新建一个command_window,例如
  1. def create_command_window2
  2.     @command_window2 = Window_Command.new(160,["武器","防具","饰品"])
  3. end
复制代码
然后基于菜单的命令:
  1. case @command_window.index
  2.    when 0
  3.     $scene = Scene_Item.new
  4.    when 1
  5.    ...
  6.    when xx  #你的打造选项
  7.      @command_window.active = false
  8.      @command_window2.visible = true
  9.      @command_window2.active = true
  10.    ....
  11. end
复制代码
然后你慢慢照着@command_window的样式来写吧,这个并不难。
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-6-8 13:47

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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