复制代码
- #==============================================================================
- # ** Scene_Title
- #------------------------------------------------------------------------------
- # 標題畫面
- # 修改:通關真結局後自動更換標題畫面和標題音樂
- #==============================================================================
- class Scene_Title < Scene_Base
- #--------------------------------------------------------------------------
- # * 主處理
- #--------------------------------------------------------------------------
- def main
- if $BTEST
- battle_test
- return
- end
- super
- end
- #--------------------------------------------------------------------------
- # * 開始處理
- #--------------------------------------------------------------------------
- def start
- super
- create_title_graphic
- create_command_window
- play_title_music
- end
- #--------------------------------------------------------------------------
- # * 結束處理
- #--------------------------------------------------------------------------
- def terminate
- super
- @sprite.dispose
- @command_window.dispose
- end
- #--------------------------------------------------------------------------
- # * 更新畫面
- #--------------------------------------------------------------------------
- def update
- super
- @command_window.update
- update_command
- end
- #--------------------------------------------------------------------------
- # ★ 創建標題圖形(通關後自動更換)
- #--------------------------------------------------------------------------
- def create_title_graphic
- @sprite = Sprite.new
- # 判斷是否通關:如果 true_ending.dat 文件存在,就用通關後的標題圖
- if FileTest.exist?("true_ending.dat")
- @sprite.bitmap = Cache.system("Title_True") # 通關後的標題圖
- else
- @sprite.bitmap = Cache.system("Title") # 默認標題圖
- end
- end
- #--------------------------------------------------------------------------
- # * 創建指令視窗
- #--------------------------------------------------------------------------
- def create_command_window
- s1 = Vocab::new_game
- s2 = Vocab::continue
- s3 = Vocab::shutdown
- @command_window = Window_Command.new(172, [s1, s2, s3])
- @command_window.x = (544 - @command_window.width) / 2
- @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
- #--------------------------------------------------------------------------
- # ★ 播放標題音樂(通關後自動更換)
- #--------------------------------------------------------------------------
- def play_title_music
- if FileTest.exist?("true_ending.dat")
- # 通關後的標題音樂(引號裡改音樂文件名,不用加後綴)
- RPG::BGM.new("Title_True", 100, 100).play
- else
- # 默認標題音樂
- $data_system.title_bgm.play
- end
- RPG::BGS.stop
- RPG::ME.stop
- end
- #--------------------------------------------------------------------------
- # * 更新指令
- #--------------------------------------------------------------------------
- def update_command
- if Input.trigger?(Input::C)
- case @command_window.index
- when 0
- command_new_game
- when 1
- command_continue
- when 2
- command_shutdown
- end
- end
- end
- #--------------------------------------------------------------------------
- # * 確定繼續遊戲的有效性
- #--------------------------------------------------------------------------
- def continue_enabled
- return false unless FileTest.exist?("Save1.rvdata")
- return true
- end
- #--------------------------------------------------------------------------
- # * 指令:新遊戲
- #--------------------------------------------------------------------------
- def command_new_game
- Sound.play_decision
- $game_system = Game_System.new
- $game_message = Game_Message.new
- $game_switches = Game_Switches.new
- $game_variables = Game_Variables.new
- $game_self_switches = Game_SelfSwitches.new
- $game_screen = Game_Screen.new
- $game_actors = Game_Actors.new
- $game_party = Game_Party.new
- $game_troop = Game_Troop.new
- $game_map = Game_Map.new
- $game_player = Game_Player.new
- $game_party.setup_starting_members
- $game_map.setup($data_system.start_map_id)
- $game_player.moveto($data_system.start_x, $data_system.start_y)
- $game_player.refresh
- $scene = Scene_Map.new
- RPG::BGM.fade(800)
- RPG::BGS.fade(800)
- RPG::ME.fade(800)
- end
- #--------------------------------------------------------------------------
- # * 指令:繼續遊戲
- #--------------------------------------------------------------------------
- def command_continue
- unless continue_enabled
- Sound.play_buzzer
- return
- end
- Sound.play_decision
- $scene = Scene_File.new(false, false, false)
- end
- #--------------------------------------------------------------------------
- # * 指令:結束遊戲
- #--------------------------------------------------------------------------
- def command_shutdown
- Sound.play_decision
- $scene = nil
- end
- #--------------------------------------------------------------------------
- # * 戰鬥測試
- #--------------------------------------------------------------------------
- def battle_test
- $data_actors = load_data("Data/Actors.rvdata")
- $data_classes = load_data("Data/Classes.rvdata")
- $data_skills = load_data("Data/Skills.rvdata")
- $data_items = load_data("Data/Items.rvdata")
- $data_weapons = load_data("Data/Weapons.rvdata")
- $data_armors = load_data("Data/Armors.rvdata")
- $data_enemies = load_data("Data/Enemies.rvdata")
- $data_troops = load_data("Data/Troops.rvdata")
- $data_states = load_data("Data/States.rvdata")
- $data_animations = load_data("Data/Animations.rvdata")
- $data_tilesets = load_data("Data/Tilesets.rvdata")
- $data_common_events = load_data("Data/CommonEvents.rvdata")
- $data_system = load_data("Data/System.rvdata")
- $game_system = Game_System.new
- $game_message = Game_Message.new
- $game_switches = Game_Switches.new
- $game_variables = Game_Variables.new
- $game_self_switches = Game_SelfSwitches.new
- $game_screen = Game_Screen.new
- $game_actors = Game_Actors.new
- $game_party = Game_Party.new
- $game_troop = Game_Troop.new
- $game_map = Game_Map.new
- $game_player = Game_Player.new
- for i in 0...$data_system.party_members.size
- actor = $game_actors[$data_system.party_members<i>]
- $game_party.add_actor(actor.id)
- end
- $game_party.make_actors_battle_test
- $game_troop.setup($data_system.battle_test_troop_id)
- $game_troop.can_escape = true
- $game_troop.can_lose = true
- $game_temp.battle_proc = Proc.new { $scene = nil }
- $scene = Scene_Battle.new
- end
- end
把 "Title_True" 改成你通关后标题图的文件名(放在 Graphics/System 文件夹里,不用加 .png)。复制代码
- @sprite.bitmap = Cache.system("Title_True") # 通关后的标题图
把 "Title_True" 改成你通关后标题音乐的文件名(放在 Audio/BGM 文件夹里,不用加 .mp3/.ogg)。复制代码
- RPG::BGM.new("Title_True", 100, 100).play
| 欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |