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

Project1

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

[已经解决] 如何在标题设置两个可以进入游戏地图的选项?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
112 小时
注册时间
2010-6-16
帖子
89
跳转到指定楼层
1
发表于 2012-1-17 19:49:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想在标题里设置一个 开始游戏 和 其他模式  两种区别.

但选择 其他模式 的时候也能 同 开始游戏一样 进入地图

但选择其他模式进入的地方和 选择开始游戏的地图是不一样的。

Lv1.梦旅人

梦石
0
星屑
49
在线时间
177 小时
注册时间
2011-7-3
帖子
235
2
发表于 2012-1-22 14:22:04 | 只看该作者
  1. #==============================================================================
  2. # ■ Scene_Title
  3. #------------------------------------------------------------------------------
  4. #  タイトル画面の処理を行うクラスです。
  5. #==============================================================================

  6. class Scene_Title < Scene_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● メイン処理
  9.   #--------------------------------------------------------------------------
  10.   def main
  11.     if $BTEST                         # 戦闘テストの場合
  12.       battle_test                     # 戦闘テストの開始処理
  13.     else                              # 通常のプレイの場合
  14.       super                           # 本来のメイン処理
  15.     end
  16.   end
  17.   #--------------------------------------------------------------------------
  18.   # ● 開始処理
  19.   #--------------------------------------------------------------------------
  20.   def start
  21.     super
  22.     load_database                     
  23.     create_game_objects               
  24.     check_continue
  25.     confirm_player_location
  26.     $game_party.setup_starting_members            
  27.     $game_map.setup($data_system.start_map_id)   
  28.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  29.     $game_player.refresh
  30.     $scene = Scene_Map.new
  31.     Graphics.frame_count = 0
  32.     RPG::BGM.stop
  33.     $game_map.autoplay
  34.   end
  35.   #--------------------------------------------------------------------------
  36.   # ● トランジション実行
  37.   #--------------------------------------------------------------------------
  38.   def perform_transition
  39.     Graphics.transition(20)
  40.   end
  41.   #--------------------------------------------------------------------------
  42.   # ● 開始後処理
  43.   #--------------------------------------------------------------------------
  44.   def post_start
  45.     super
  46.     open_command_window
  47.   end
  48.   #--------------------------------------------------------------------------
  49.   # ● 終了前処理
  50.   #--------------------------------------------------------------------------
  51.   def pre_terminate
  52.     super
  53.     close_command_window
  54.   end
  55.   #--------------------------------------------------------------------------
  56.   # ● 終了処理
  57.   #--------------------------------------------------------------------------
  58.   def terminate
  59.     super
  60.     dispose_command_window
  61.     snapshot_for_background
  62.     dispose_title_graphic
  63.   end
  64.   #--------------------------------------------------------------------------
  65.   # ● フレーム更新
  66.   #--------------------------------------------------------------------------
  67.   def update
  68.     super
  69.     @command_window.update
  70.     if Input.trigger?(Input::C)
  71.       case @command_window.index
  72.       when 0    # ニューゲーム
  73.         command_new_game
  74.       when 1    # コンティニュー
  75.         command_continue
  76.       when 2    # シャットダウン
  77.         command_shutdown
  78.       when 3
  79.         command_new_game2
  80.       end
  81.     end
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● データベースのロード
  85.   #--------------------------------------------------------------------------
  86.   def load_database
  87.     $data_actors        = load_data("Data/Actors.rvdata")
  88.     $data_classes       = load_data("Data/Classes.rvdata")
  89.     $data_skills        = load_data("Data/Skills.rvdata")
  90.     $data_items         = load_data("Data/Items.rvdata")
  91.     $data_weapons       = load_data("Data/Weapons.rvdata")
  92.     $data_armors        = load_data("Data/Armors.rvdata")
  93.     $data_enemies       = load_data("Data/Enemies.rvdata")
  94.     $data_troops        = load_data("Data/Troops.rvdata")
  95.     $data_states        = load_data("Data/States.rvdata")
  96.     $data_animations    = load_data("Data/Animations.rvdata")
  97.     $data_common_events = load_data("Data/CommonEvents.rvdata")
  98.     $data_system        = load_data("Data/System.rvdata")
  99.     $data_areas         = load_data("Data/Areas.rvdata")
  100.   end
  101.   #--------------------------------------------------------------------------
  102.   # ● 戦闘テスト用データベースのロード
  103.   #--------------------------------------------------------------------------
  104.   def load_bt_database
  105.     $data_actors        = load_data("Data/BT_Actors.rvdata")
  106.     $data_classes       = load_data("Data/BT_Classes.rvdata")
  107.     $data_skills        = load_data("Data/BT_Skills.rvdata")
  108.     $data_items         = load_data("Data/BT_Items.rvdata")
  109.     $data_weapons       = load_data("Data/BT_Weapons.rvdata")
  110.     $data_armors        = load_data("Data/BT_Armors.rvdata")
  111.     $data_enemies       = load_data("Data/BT_Enemies.rvdata")
  112.     $data_troops        = load_data("Data/BT_Troops.rvdata")
  113.     $data_states        = load_data("Data/BT_States.rvdata")
  114.     $data_animations    = load_data("Data/BT_Animations.rvdata")
  115.     $data_common_events = load_data("Data/BT_CommonEvents.rvdata")
  116.     $data_system        = load_data("Data/BT_System.rvdata")
  117.   end
  118.   #--------------------------------------------------------------------------
  119.   # ● 各種ゲームオブジェクトの作成
  120.   #--------------------------------------------------------------------------
  121.   def create_game_objects
  122.     $game_temp          = Game_Temp.new
  123.     $game_message       = Game_Message.new
  124.     $game_system        = Game_System.new
  125.     $game_switches      = Game_Switches.new
  126.     $game_variables     = Game_Variables.new
  127.     $game_self_switches = Game_SelfSwitches.new
  128.     $game_actors        = Game_Actors.new
  129.     $game_party         = Game_Party.new
  130.     $game_troop         = Game_Troop.new
  131.     $game_map           = Game_Map.new
  132.     $game_player        = Game_Player.new
  133.   end
  134.   #--------------------------------------------------------------------------
  135.   # ● コンティニュー有効判定
  136.   #--------------------------------------------------------------------------
  137.   def check_continue
  138.     @continue_enabled = (Dir.glob('Save*.rvdata').size > 0)
  139.   end
  140.   #--------------------------------------------------------------------------
  141.   # ● タイトルグラフィックの作成
  142.   #--------------------------------------------------------------------------
  143.   def create_title_graphic
  144.     @sprite = Sprite.new
  145.     @sprite.bitmap = Cache.system("Title")
  146.   end
  147.   #--------------------------------------------------------------------------
  148.   # ● タイトルグラフィックの解放
  149.   #--------------------------------------------------------------------------
  150.   def dispose_title_graphic
  151.     @sprite.bitmap.dispose
  152.     @sprite.dispose
  153.   end
  154.   #--------------------------------------------------------------------------
  155.   # ● コマンドウィンドウの作成
  156.   #--------------------------------------------------------------------------
  157.   def create_command_window
  158.     s1 = Vocab::new_game
  159.     s2 = Vocab::continue
  160.     s3 = Vocab::shutdown
  161.     s4 = Vocab::new_game2   #(进入地图的另一种模式,如果看不懂可以替换成自己想要的名字,例如:"Extra模式")
  162.     @command_window = Window_Command.new(172, [s1, s2, s3,s4])
  163.     @command_window.x = 468   # 窗口X坐标
  164.     @command_window.y = 378   # 窗口Y坐标
  165.     if @continue_enabled                    # コンティニューが有効な場合
  166.       @command_window.index = 1             # カーソルを合わせる
  167.     else                                    # 無効な場合
  168.       @command_window.draw_item(1, false)   # コマンドを半透明表示にする
  169.     end
  170.     @command_window.openness = 0
  171.     @command_window.open
  172.   end
  173.   #--------------------------------------------------------------------------
  174.   # ● コマンドウィンドウの解放
  175.   #--------------------------------------------------------------------------
  176.   def dispose_command_window
  177.     @command_window.dispose
  178.   end
  179.   #--------------------------------------------------------------------------
  180.   # ● コマンドウィンドウを開く
  181.   #--------------------------------------------------------------------------
  182.   def open_command_window
  183.     @command_window.open
  184.     begin
  185.       @command_window.update
  186.       Graphics.update
  187.     end until @command_window.openness == 255
  188.   end
  189.   #--------------------------------------------------------------------------
  190.   # ● コマンドウィンドウを閉じる
  191.   #--------------------------------------------------------------------------
  192.   #--------------------------------------------------------------------------
  193.   # ● タイトル画面の音楽演奏
  194.   #--------------------------------------------------------------------------
  195.   def play_title_music
  196.     $data_system.title_bgm.play
  197.     RPG::BGS.stop
  198.     RPG::ME.stop
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # ● プレイヤーの初期位置存在チェック
  202.   #--------------------------------------------------------------------------
  203.   def confirm_player_location
  204.     if $data_system.start_map_id == 0
  205.       print "未设置玩家起始点."
  206.       exit
  207.     end
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # ● コマンド : ニューゲーム
  211.   #--------------------------------------------------------------------------
  212.   def command_new_game
  213.     confirm_player_location
  214.     Sound.play_decision
  215.     $game_party.setup_starting_members            # 初期パーティ
  216.     $game_map.setup($data_system.start_map_id)    # 初期位置のマップ
  217.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  218.     $game_player.refresh
  219.     $scene = Scene_Map.new
  220.     RPG::BGM.fade(1500)
  221.     close_command_window
  222.     Graphics.fadeout(60)
  223.     Graphics.wait(40)
  224.     Graphics.frame_count = 0
  225.     RPG::BGM.stop
  226.     $game_map.autoplay
  227.   end
  228.   def command_new_game
  229.     confirm_player_location
  230.     Sound.play_decision
  231.     $game_party.setup_starting_members            
  232.     $game_map.setup($data_system.start_map_id)    # 以另一种模式开始时的地图编号
  233.     $game_player.moveto($data_system.start_x, $data_system.start_y)
  234.     $game_player.refresh
  235.     $scene = Scene_Map.new
  236.     RPG::BGM.fade(1500)
  237.     close_command_window
  238.     Graphics.fadeout(60)
  239.     Graphics.wait(40)
  240.     Graphics.frame_count = 0
  241.     RPG::BGM.stop
  242.     $game_map.autoplay
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # ● コマンド : コンティニュー
  246.   #--------------------------------------------------------------------------
  247.   def command_continue
  248.     if @continue_enabled
  249.       Sound.play_decision
  250.       $scene = Scene_File.new(false, true, false)
  251.     else
  252.       Sound.play_buzzer
  253.     end
  254.   end
  255.   #--------------------------------------------------------------------------
  256.   # ● コマンド : シャットダウン
  257.   #--------------------------------------------------------------------------
  258.   def command_shutdown
  259.     Sound.play_decision
  260.     RPG::BGM.fade(800)
  261.     RPG::BGS.fade(800)
  262.     RPG::ME.fade(800)
  263.     $scene = nil
  264.   end
  265.   #--------------------------------------------------------------------------
  266.   # ● 戦闘テスト
  267.   #--------------------------------------------------------------------------
  268.   def battle_test
  269.     load_bt_database                  # 戦闘テスト用データベースをロード
  270.     create_game_objects               # ゲームオブジェクトを作成
  271.     Graphics.frame_count = 0          # プレイ時間を初期化
  272.     $game_party.setup_battle_test_members
  273.     $game_troop.setup($data_system.test_troop_id)
  274.     $game_troop.can_escape = true
  275.     $game_system.battle_bgm.play
  276.     snapshot_for_background
  277.     $scene = Scene_Battle.new
  278.   end
  279. end
复制代码
替换掉原来的Scene_Title脚本,另外请认真看中文注释.
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-28 08:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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