Project1

标题: 在RMVA中的标题菜单添加其他选项 [打印本页]

作者: 5439sims2    时间: 2012-1-2 23:05
标题: 在RMVA中的标题菜单添加其他选项
本帖最后由 精灵使者 于 2012-1-15 13:51 编辑

本文所示的代码均不是完整的需要放到实际的环境中
大家是知道的,以前在RMVX中的时候可以动点小手脚来添加其他的项
RMVX的格式如下:
#==============================================================================
# ■ Scene_Title
#------------------------------------------------------------------------------
#  处理标题画面的类。
#==============================================================================
#--------------------------------------------------------------------------
  # ● 更新画面
  #--------------------------------------------------------------------------
  def update
    super
    @command_window.update
    if Input.trigger?(Input::C)
      case @command_window.index
      when 0    #New game
        command_new_game
      when 1    # Continue
        command_continue
      when 2    # Shutdown
        command_shutdown
      when 3    # 测试地图
        command_ceshi
      end
    end
  end
#--------------------------------------------------------------------------
  # ● 生成命令窗口
  #--------------------------------------------------------------------------
  def create_command_window
    s1 = Vocab::new_game
    s2 = Vocab::continue
    s3 = Vocab::shutdown
    s4 = "其他模式"
    @command_window = Window_Command.new(270, [s1, s2, s3, s4])
    # <--- @command_window = Window_Command.new(172, [s1, s2, s3, s4])
    @command_window.x = (1024 - @command_window.width) / 2
    @command_window.y = 450   #<------ @command_window.y = 288
    if @continue_enabled                    # 如果「继续」有效
      @command_window.index = 1             # 将光标移至「继续游戏」
    else                                    # 否则则将「继续游戏」半透明化
      @command_window.draw_item(1, false)
    end
    @command_window.openness = 0
    @command_window.open
  end

就是这样,在RMVX中只有一个处理标题界面的东西那就是Scene_Title
可是在RMVA中可恶的EB!竟然把Scene_Title分成了3个部分
分别是window_TitleCommand、DataManage、Scene_Title三个部分( T T EB!你这是明显给我们找麻烦啊!)
这三个部分联合处理一个开始界面,每个都有不同的代码,从汉化版的RMVA你们是知道的!
对于DataManage来说应该在设置:新游戏的下面添加一段与设置新游戏基本一样的代码
如,我添加的
#--------------------------------------------------------------------------
  # ● 设置其他模式
  #--------------------------------------------------------------------------
  def self.setup_zhizuo
    create_game_objects
    $game_party.setup_starting_members
    $game_map.setup(1)
    $game_player.moveto($data_system.start_x, $data_system.start_y)
    $game_player.refresh
    Graphics.frame_count = 0
  end

注意到def这行了没有 原来是
def self.setup_new_game
被我改成了
def self.setup_zhizuo
setup后面的名字可以随便起,不过要记住
对于window_TileCommand来说,他是组成标题中的那个框框里面的选项
#--------------------------------------------------------------------------
  # ● 生成指令列表
  #--------------------------------------------------------------------------
  def make_command_list
    add_command(Vocab::new_game, :new_game)
    add_command(Vocab::continue, :continue, continue_enabled)
    add_command("制作者名单", :zhizuo)
    add_command(Vocab::shutdown, :shutdown)
  end

add_command(XXXXX)的顺序决定就是框框里面的顺序了
add_command其实就跟VX里面的When X  command_XXX一样,是用于调用scene_Title中对应的选项一样
对于Scene_Title来说,他是组成标题画面的关键,他相当于司令员调用者上面两个
#--------------------------------------------------------------------------
  # ● 生成指令窗口
  #--------------------------------------------------------------------------
  def create_command_window
    @command_window = Window_TitleCommand.new
    @command_window.set_handler(:new_game, method(:command_new_game))
    @command_window.set_handler(:continue, method(:command_continue))
    @command_window.set_handler(:zhizuo, method(:command_zhizuo))
    @command_window.set_handler(:shutdown, method(:command_shutdown))
  end
#--------------------------------------------------------------------------
  # ● 指令 [制作者名单]
  #--------------------------------------------------------------------------
  def command_zhizuo
    DataManager.setup_zhizuo
    close_command_window
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end

其实  @command_window.set_handler(:zhizuo, method(:command_zhizuo))中间的:command_zhizuo和zhizuo就是承接上面的add……的
制作者名单不用我说吧!
注意DataManager.setup_zhizuo这句就是调用上面的那个
作者: 后知后觉    时间: 2012-1-2 23:30
这标题......
我还以为又是一个错区帖
作者: 5439sims2    时间: 2012-1-3 14:34
后知后觉 发表于 2012-1-2 23:30
这标题......
我还以为又是一个错区帖

只是改脚本,不是原创新的脚本不敢去掉如何两字……话说RMVA真麻烦……
作者: 凌童鞋    时间: 2012-1-3 15:23
不过这样的标题达到了可以吸引人的目的……
作者: wosizolo    时间: 2012-2-6 10:37
换视角怎么搞

作者: a2219119    时间: 2012-7-6 02:15
LZ能搞个脚本使用说明吗?我们菜鸟看不懂脚本!


‘‘──a2219119于2012-7-6 02:16补充以下内容:

回错地方,抱歉!
’’
作者: 炫宇    时间: 2012-9-5 19:18
我照你VA菜单添加选项的方法设置了个游戏帮助,但是接下去怎么做?我纯新人,帮帮我,目前点了那选项是没反应的
作者: 狂歌天涯    时间: 2013-1-9 11:17
本帖最后由 狂歌天涯 于 2013-1-9 12:28 编辑

楼主的最后一段
# ● 指令 [制作者名单]
  #--------------------------------------------------------------------------
  def command_zhizuo
    DataManager.setup_zhizuo
    close_command_window
    fadeout_all
    $game_map.autoplay
    SceneManager.goto(Scene_Map)
  end

其中的最后一句SceneManager.goto(Scene_Map)改成SceneManager.call(Scene_Map)是不是好些?
goto用在标题上还可以,但是要是用在菜单上,返回的时候会回到标题界面,而不是菜单界面。改成call就好了。
在菜单界面里用楼主的这个方法
# ● 指令 [制作者名单]
  #--------------------------------------------------------------------------
  def command_zhizuo
    SceneManager.call(Scene_Map)
  end

只要这一行就好了,不然返回游戏界面的时候也会出错的。
作者: 白衣仙卿    时间: 2013-1-19 17:49
这个先拿来看看试试了,谢谢了
作者: 血狼BW    时间: 2013-2-5 13:01
那菜单怎么加
作者: 龙星羽    时间: 2013-5-19 23:14
试着运行了一下,但是好像多出来的这个选项点击后是进入新游戏(说好的名单呢,新人小菜表示疑惑)......




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