class Game_Temp attr_accessor :temp_save #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias tako343initialize initialize def initialize tako343initialize @temp_save = [] end end class Scene_Gameover < Scene_Base #-------------------------------------------------------------------------- # ● タイトル画面へ遷移 #-------------------------------------------------------------------------- alias tako4343goto_title goto_title def goto_title if $data_gameover_select_flag SceneManager.clear SceneManager.goto(Scene_GameOverSelect) else tako4343goto_title end end end class Scene_GameOverSelect < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start super SceneManager.clear Graphics.freeze create_background create_command_window end #-------------------------------------------------------------------------- # ● 背景の作成 #-------------------------------------------------------------------------- def create_background @sprite = Sprite.new @sprite.bitmap = Cache.system("GameOver") end #-------------------------------------------------------------------------- # ● 背景の解放 #-------------------------------------------------------------------------- def dispose_background @sprite.bitmap.dispose @sprite.dispose end #-------------------------------------------------------------------------- # ● トランジション速度の取得 #-------------------------------------------------------------------------- def transition_speed return 20 end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate super SceneManager.snapshot_for_background dispose_background end #-------------------------------------------------------------------------- # ● ゲームタイトルの描画 #-------------------------------------------------------------------------- def draw_game_title @foreground_sprite.bitmap.font.size = 48 rect = Rect.new(0, 0, Graphics.width, Graphics.height / 2) @foreground_sprite.bitmap.draw_text(rect, $data_system.game_title, 1) end #-------------------------------------------------------------------------- # ● 背景の解放 #-------------------------------------------------------------------------- def dispose_background @sprite.bitmap.dispose @sprite.dispose end #-------------------------------------------------------------------------- # ● 前景の解放 #-------------------------------------------------------------------------- def dispose_foreground @foreground_sprite.bitmap.dispose @foreground_sprite.dispose end #-------------------------------------------------------------------------- # ● スプライトを画面中央に移動 #-------------------------------------------------------------------------- def center_sprite(sprite) sprite.ox = sprite.bitmap.width / 2 sprite.oy = sprite.bitmap.height / 2 sprite.x = Graphics.width / 2 sprite.y = Graphics.height / 2 end #-------------------------------------------------------------------------- # ● コマンドウィンドウの作成 #-------------------------------------------------------------------------- def create_command_window @command_window = Window_GameOverCommand.new @command_window.set_handler(:load_data0, method(:command_load_data0)) @command_window.set_handler(:continue, method(:command_continue)) @command_window.set_handler(:title, method(:command_title)) end #-------------------------------------------------------------------------- # ● コマンドウィンドウを閉じる #-------------------------------------------------------------------------- def close_command_window @command_window.close update until @command_window.close? end #-------------------------------------------------------------------------- # ● コマンド[ロード] #-------------------------------------------------------------------------- def command_load_data0 if DataManager.load_game_on_memory(0) close_command_window fadeout_all $game_map.autoplay on_load_success $game_map.interpreter.command_115 else Sound.play_buzzer end end #-------------------------------------------------------------------------- # ● コマンド[タイトル] #-------------------------------------------------------------------------- def command_title close_command_window fadeout_all SceneManager.goto(Scene_Title) end #-------------------------------------------------------------------------- # ● コマンド[コンティニュー] #-------------------------------------------------------------------------- def command_continue close_command_window SceneManager.call(Scene_Load) end #-------------------------------------------------------------------------- # ● タイトル画面の音楽演奏 #-------------------------------------------------------------------------- def play_title_music $data_system.title_bgm.play RPG::BGS.stop RPG::ME.stop end #-------------------------------------------------------------------------- # ● ロード成功時の処理 #-------------------------------------------------------------------------- def on_load_success fadeout_all $game_system.on_after_load SceneManager.goto(Scene_Map) end end class Window_GameOverCommand < Window_Command #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(0, 0) update_placement select_symbol(:load_data) if continue_enabled self.openness = 0 open end #-------------------------------------------------------------------------- # ● ウィンドウ幅の取得 #-------------------------------------------------------------------------- def window_width return 280 end #-------------------------------------------------------------------------- # ● ウィンドウ位置の更新 #-------------------------------------------------------------------------- def update_placement self.x = (Graphics.width - width) / 2 self.y = (Graphics.height * 1.6 - height) / 2 end #-------------------------------------------------------------------------- # ● コマンドリストの作成 #-------------------------------------------------------------------------- def make_command_list add_command($data_save_game_on_memory_vocab[0], :load_data0,load_on_memory_enabled(0)) add_command($data_save_game_on_memory_vocab[1], :continue, continue_enabled) add_command($data_save_game_on_memory_vocab[2], :title) end #-------------------------------------------------------------------------- # ● コンティニューの有効状態を取得 #-------------------------------------------------------------------------- def continue_enabled DataManager.save_file_exists? end #-------------------------------------------------------------------------- # ● コンティニューの有効状態を取得 #-------------------------------------------------------------------------- def continue_auto_enabled DataManager.save_file0_exists? end def load_on_memory_enabled(i) $game_temp.temp_save[i] end end