| 
 
| 赞 | 0 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 1 |  
| 经验 | 495 |  
| 最后登录 | 2014-2-15 |  
| 在线时间 | 9 小时 |  
 Lv1.梦旅人 
	梦石0 星屑50 在线时间9 小时注册时间2014-2-6帖子11 | 
2楼
 
 
 楼主|
发表于 2014-2-9 02:45:13
|
只看该作者 
| 我的想法是在Scene_MenuBase里建一个@last_scene变量, 当进入skill等菜单时,@last_scene被赋值为3,当进入选项菜单时被赋值为1。这样只要判断这个变量是否为3可知玩家是从地图场景进入下图的菜单界面的,还是通过skill等菜单退回到如下的菜单界面的。
 由此来决定是开启左菜单还是右菜单。可是我失败了。我发现如果把这个变量变为全局变量是可行的,这是为什么?或者大家还有没有其他好方法?
 
 ![]() 复制代码class Scene_Menu < Scene_MenuBase
#----------------------
省
#---------------------
 #----------------------------------------------------------------------------
  # * 创建菜单选项
  #----------------------------------------------------------------------------
  def create_menu_command
    @menu_command = Window_MenuCommand.new
    @menu_command.set_handler(:cancel, method(:return_scene))
    @menu_command.set_handler(:item, method(:item_ok))
    @menu_command.set_handler(:skill, method(:person_ok))
    @menu_command.set_handler(:equip, method(:person_ok))
    @menu_command.set_handler(:status, method(:person_ok))
    @menu_command.set_handler(:formation, method(:person_ok))
    @menu_command.set_handler(:save, method(:save_ok))
    @menu_command.set_handler(:load, method(:load_ok))
    @menu_command.set_handler(:game_end, method(:end_ok))
    @menu_command.active = (@last_scene != 3 ? true : false)
    @menu_command.select(@last_index)
    @menu_command.opacity = 0
  end
  #-----------------------------------------------------------------------------
  #  *创建人物状态菜单
  #-----------------------------------------------------------------------------
  def create_menustatus_command
    @menustatus_command = Window_NewMenuStatus.new
    @menustatus_command.active = (@last_scene == 3 ? true : false)
    @menustatus_command.set_handler(:cancel, method(:back_command))
    @menustatus_command.set_handler(:ok, method(:status_ok))
    @menustatus_command.select(@last_index2)
    @menustatus_command.opacity = 0
  end
复制代码class Scene_Skill < Scene_ItemBase
  #--------------------------------------------------------------------------
  # ● 开始处理
  #--------------------------------------------------------------------------
  def start
    super
    create_help_window
    create_command_window
    create_status_window
    create_item_window
    @last_scene = 3
  end
复制代码class Scene_MenuBase < Scene_Base
  #-----------------------------------------------------------------------------
  #    *初始化
  #-----------------------------------------------------------------------------
  def initialize
    super
    @last_index = 0 if @last_index == nil
    @last_index2 = 0 if @last_index2 == nil
    @last_scene = 0 if @last_scene == nil
  end
end
 | 
 |