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

Project1

 找回密码
 注册会员
搜索
查看: 1266|回复: 4
打印 上一主题 下一主题

[已经解决] 是否可以实现 在游戏 过程中 更改菜单??

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
211 小时
注册时间
2010-12-30
帖子
85
跳转到指定楼层
1
发表于 2011-11-23 19:59:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
   就是在  游戏 进行到一半时 ,主角增加了 某些新的 能力,让游戏增添了一些 新的功能。

然后 通过 某个 开关 打开,让 菜单 多一个选项??

Lv1.梦旅人

梦石
0
星屑
105
在线时间
5250 小时
注册时间
2011-10-7
帖子
1885

开拓者贵宾

2
发表于 2011-11-23 20:09:07 | 只看该作者
本帖最后由 凌童鞋 于 2011-11-23 20:11 编辑

vx区中我回答过类似的,你去看看吧…那个是新式菜单的,不过没太大区别…上电脑我给你写一份…
回复

使用道具 举报

Lv1.梦旅人

Mr.Gandum

梦石
0
星屑
226
在线时间
2070 小时
注册时间
2007-1-31
帖子
3039

贵宾

3
发表于 2011-11-23 20:10:43 | 只看该作者
在Scene_Menu里的创建窗口,更新窗口里加个判断就可以了。
回复

使用道具 举报

Lv1.梦旅人

小黑

梦石
0
星屑
50
在线时间
140 小时
注册时间
2011-8-23
帖子
536
4
发表于 2011-11-24 05:13:12 | 只看该作者
写好了,给你参考(我建议你不要用我的,因为我是脚本盲,这个不知道能不能帮到你)
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================
  6. #---------------------------------------------------------
  7. # ●菜单中显示地图
  8. #---------------------------------------------------------
  9. class Game_Map
  10. attr_reader   :map_id  
  11.   def mpname
  12.   $mpname = load_data("Data/MapInfos.rvdata")
  13.   $mpname[@map_id].name
  14.   end
  15. end
  16. class Window_Mapname < Window_Base
  17.   def initialize(x, y)
  18.     super(0, 272, 160, WLH + 64)
  19.     refresh
  20.   end  
  21.   def refresh
  22.     self.contents.clear
  23.     self.contents.font.color = system_color
  24.     self.contents.draw_text(4, 0, 120, 32, "GPRS位置:")
  25.     self.contents.font.color = normal_color
  26.     self.contents.draw_text(4, 32, 120, 32, $game_map.mpname.to_s, 2)
  27.   end
  28. end
  29. #---------------
  30. #正式开始菜单
  31. #---------------
  32. class Scene_Menu < Scene_Base
  33.   #--------------------------------------------------------------------------
  34.   # ● 初始化对像
  35.   #     menu_index : 命令窗口光标初始位置
  36.   #--------------------------------------------------------------------------
  37.   def initialize(menu_index = 0)
  38.     @menu_index = menu_index
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● 开始处理
  42.   #--------------------------------------------------------------------------
  43.   def start
  44.     super
  45.     create_menu_background
  46.     create_command_window
  47.     @gold_window = Window_Gold.new(0, 360)
  48.     @status_window = Window_MenuStatus.new(160, 0)
  49.     @mapname_window = Window_Mapname.new(0, 178)
  50.     @mapname_window.openness = 0
  51.     @mapname_window.open
  52.   end
  53.   #--------------------------------------------------------------------------
  54.   # ● 结束处理
  55.   #--------------------------------------------------------------------------
  56.   def terminate
  57.     super
  58.     dispose_menu_background
  59.     @command_window.dispose
  60.     @gold_window.dispose
  61.     @status_window.dispose
  62.     @mapname_window.dispose
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● 更新画面
  66.   #--------------------------------------------------------------------------
  67.   def update
  68.     super
  69.     update_menu_background
  70.     @command_window.update
  71.     @gold_window.update
  72.     @status_window.update
  73.     @mapname_window.update
  74.     if @command_window.active
  75.       update_command_selection
  76.     elsif @status_window.active
  77.       update_actor_selection
  78.     end
  79.   end
  80.   #--------------------------------------------------------------------------
  81.   # ● 生成命令窗口
  82.   #--------------------------------------------------------------------------
  83.   def create_command_window
  84.     s1 = Vocab::item
  85.     s2 = Vocab::skill
  86.     s3 = Vocab::equip
  87.     s4 = Vocab::status
  88.     s5 = Vocab::save
  89.     if
  90.     $game_switches[88] == true    #开关
  91.     s6 = "BUG提交"
  92.     end
  93.    
  94.     s7 = Vocab::game_end
  95.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5 ,s7])

  96.   if
  97.     $game_switches[88] == true    #开关
  98.     @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5 , s6, s7])
  99.   end
  100.   
  101.     @command_window.index = @menu_index
  102.     if $game_party.members.size == 0          # 如果队伍为空
  103.       @command_window.draw_item(0, false)     # 无效化物品选项
  104.       @command_window.draw_item(1, false)     # 无效化技能选项
  105.       @command_window.draw_item(2, false)     # 无效化装备选项
  106.       @command_window.draw_item(3, false)     # 无效化状态选项
  107.     end
  108.     if $game_system.save_disabled             # 如果禁止存档
  109.       @command_window.draw_item(4, false)     # 无效化存档选项
  110.     end
  111.   end
  112.   #--------------------------------------------------------------------------
  113.   # ● 更新命令窗口
  114.   #--------------------------------------------------------------------------
  115.   def update_command_selection
  116.     if Input.trigger?(Input::B)
  117.       Sound.play_cancel
  118.       $scene = Scene_Map.new
  119.       
  120.     elsif Input.trigger?(Input::C)
  121.       if $game_party.members.size == 0 and @command_window.index < 4
  122.         Sound.play_buzzer
  123.         return
  124.       elsif $game_system.save_disabled and @command_window.index == 4
  125.         Sound.play_buzzer
  126.         return
  127.       end
  128.       Sound.play_decision
  129.       case @command_window.index
  130.       when 0      # 物品
  131.         $scene = Scene_Item.new
  132.       when 1,2,3  # 技能、装备、状态
  133.         start_actor_selection
  134.       when 4      # 存档
  135.         $scene = Scene_File.new(true, false, false)
  136.       when 5      # BUG提交
  137.           print "谢谢你的合作!"
  138.       a = Win32API.new('shell32.dll','ShellExecuteA',%w(p p p p p i),'i')#
  139.       a.call(0, 'open','http://rpg.blue',0, 0, 1) #


  140.       when 6      # 结束游戏
  141.         $scene = Scene_End.new
  142.       end
  143.     end
  144.   end

  145.   #--------------------------------------------------------------------------
  146.   # ● 角色选择开始
  147.   #--------------------------------------------------------------------------
  148.   def start_actor_selection
  149.     @command_window.active = false
  150.     @status_window.active = true
  151.     if $game_party.last_actor_index < @status_window.item_max
  152.       @status_window.index = $game_party.last_actor_index
  153.     else
  154.       @status_window.index = 0
  155.     end
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # ● 角色选择结束
  159.   #--------------------------------------------------------------------------
  160.   def end_actor_selection
  161.     @command_window.active = true
  162.     @status_window.active = false
  163.     @status_window.index = -1
  164.   end
  165.   #--------------------------------------------------------------------------
  166.   # ● 角色选择更新
  167.   #--------------------------------------------------------------------------
  168.   def update_actor_selection
  169.     if Input.trigger?(Input::B)
  170.       Sound.play_cancel
  171.       end_actor_selection
  172.     elsif Input.trigger?(Input::C)
  173.       $game_party.last_actor_index = @status_window.index
  174.       Sound.play_decision
  175.       case @command_window.index
  176.       when 1  # 技能
  177.         $scene = Scene_Skill.new(@status_window.index)
  178.       when 2  # 装备
  179.         $scene = Scene_Equip.new(@status_window.index)
  180.       when 3  # 状态
  181.         $scene = Scene_Status.new(@status_window.index)
  182.       end
  183.     end
  184.   end
  185. end
复制代码
起码对得起自己。
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
105
在线时间
5250 小时
注册时间
2011-10-7
帖子
1885

开拓者贵宾

5
发表于 2011-11-24 18:23:55 | 只看该作者
楼上的同学马虎了,只是增加文字里。。
  1. #==============================================================================
  2. # ■ Scene_Menu
  3. #------------------------------------------------------------------------------
  4. #  处理菜单画面的类。
  5. #==============================================================================

  6. class Scene_Menu < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #     menu_index : 命令窗口光标初始位置
  10.   #--------------------------------------------------------------------------
  11.   def initialize(menu_index = 0)
  12.     @menu_index = menu_index
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # ● 开始处理
  16.   #--------------------------------------------------------------------------
  17.   def start
  18.     super
  19.     create_menu_background
  20.     create_command_window
  21.     @gold_window = Window_Gold.new(0, 360)
  22.     @status_window = Window_MenuStatus.new(160, 0)
  23.   end
  24.   #--------------------------------------------------------------------------
  25.   # ● 结束处理
  26.   #--------------------------------------------------------------------------
  27.   def terminate
  28.     super
  29.     dispose_menu_background
  30.     @command_window.dispose
  31.     @gold_window.dispose
  32.     @status_window.dispose
  33.   end
  34.   #--------------------------------------------------------------------------
  35.   # ● 更新画面
  36.   #--------------------------------------------------------------------------
  37.   def update
  38.     super
  39.     update_menu_background
  40.     @command_window.update
  41.     @gold_window.update
  42.     @status_window.update
  43.     if @command_window.active
  44.       update_command_selection
  45.     elsif @status_window.active
  46.       update_actor_selection
  47.     end
  48.   end
  49.   #--------------------------------------------------------------------------
  50.   # ● 生成命令窗口
  51.   #--------------------------------------------------------------------------
  52.   def create_command_window
  53.     s1 = Vocab::item
  54.     s2 = Vocab::skill
  55.     s3 = Vocab::equip
  56.     s4 = Vocab::status
  57.     s5 = Vocab::save
  58.     s6 = Vocab::game_end
  59.     s7 = "Hello,world!"
  60.     if $game_switches[88] == true
  61.       @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s7, s6])
  62.     else
  63.       @command_window = Window_Command.new(160, [s1, s2, s3, s4, s5, s6])
  64.     end
  65.     @command_window.index = @menu_index
  66.     if $game_party.members.size == 0          # 如果队伍为空
  67.       @command_window.draw_item(0, false)     # 无效化物品选项
  68.       @command_window.draw_item(1, false)     # 无效化技能选项
  69.       @command_window.draw_item(2, false)     # 无效化装备选项
  70.       @command_window.draw_item(3, false)     # 无效化状态选项
  71.     end
  72.     if $game_system.save_disabled             # 如果禁止存档
  73.       @command_window.draw_item(4, false)     # 无效化存档选项
  74.     end
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 更新命令窗口
  78.   #--------------------------------------------------------------------------
  79.   def update_command_selection
  80.     if Input.trigger?(Input::B)
  81.       Sound.play_cancel
  82.       $scene = Scene_Map.new
  83.     elsif Input.trigger?(Input::C)
  84.       if $game_party.members.size == 0 and @command_window.index < 4
  85.         Sound.play_buzzer
  86.         return
  87.       elsif $game_system.save_disabled and @command_window.index == 4
  88.         Sound.play_buzzer
  89.         return
  90.       end
  91.       Sound.play_decision
  92.     if $game_switches[88] == true
  93.       case @command_window.index
  94.           when 0      # 物品
  95.             $scene = Scene_Item.new
  96.           when 1,2,3  # 技能、装备、状态
  97.             start_actor_selection
  98.           when 4      # 存档
  99.             $scene = Scene_File.new(true, false, false)
  100.           when 5
  101.             p "hello,world!"
  102.           when 6      # 结束游戏
  103.             $scene = Scene_End.new
  104.       end
  105.     else
  106.       case @command_window.index
  107.           when 0      # 物品
  108.             $scene = Scene_Item.new
  109.           when 1,2,3  # 技能、装备、状态
  110.             start_actor_selection
  111.           when 4      # 存档
  112.             $scene = Scene_File.new(true, false, false)
  113.           when 5      # 结束游戏
  114.             $scene = Scene_End.new
  115.         end
  116.       end
  117.     end
  118.   end
  119.   #--------------------------------------------------------------------------
  120.   # ● 角色选择开始
  121.   #--------------------------------------------------------------------------
  122.   def start_actor_selection
  123.     @command_window.active = false
  124.     @status_window.active = true
  125.     if $game_party.last_actor_index < @status_window.item_max
  126.       @status_window.index = $game_party.last_actor_index
  127.     else
  128.       @status_window.index = 0
  129.     end
  130.   end
  131.   #--------------------------------------------------------------------------
  132.   # ● 角色选择结束
  133.   #--------------------------------------------------------------------------
  134.   def end_actor_selection
  135.     @command_window.active = true
  136.     @status_window.active = false
  137.     @status_window.index = -1
  138.   end
  139.   #--------------------------------------------------------------------------
  140.   # ● 角色选择更新
  141.   #--------------------------------------------------------------------------
  142.   def update_actor_selection
  143.     if Input.trigger?(Input::B)
  144.       Sound.play_cancel
  145.       end_actor_selection
  146.     elsif Input.trigger?(Input::C)
  147.       $game_party.last_actor_index = @status_window.index
  148.       Sound.play_decision
  149.       case @command_window.index
  150.       when 1  # 技能
  151.         $scene = Scene_Skill.new(@status_window.index)
  152.       when 2  # 装备
  153.         $scene = Scene_Equip.new(@status_window.index)
  154.       when 3  # 状态
  155.         $scene = Scene_Status.new(@status_window.index)
  156.       end
  157.     end
  158.   end
  159. end
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2025-1-2 02:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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