# # 戦闘中画面を切り替えずにゲームオーバー表示 #  (C)2006 TYPE74RX-T # RX_T_GAMEOVER_PIC = "001-Gameover01" #============================================================================== # ■ Scene_Battle (分割定義 1) #------------------------------------------------------------------------------ #  バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle #-------------------------------------------------------------------------- # ★ ゲームオーバー表示時用Cボタン判定 #-------------------------------------------------------------------------- def rx_c_update # C ボタンが押された場合 if Input.trigger?(Input::C) # タイトル画面に切り替え $scene = Scene_Title.new end end #-------------------------------------------------------------------------- # ★ ゲームオーバー表示 #-------------------------------------------------------------------------- def rx_game_over # BGM、BGS を停止 $game_system.bgm_play(nil) $game_system.bgs_play(nil) # ゲームオーバー ME を演奏 $game_system.me_play($data_system.gameover_me) # トランジション準備 Graphics.freeze # ゲームオーバーグラフィックを作成 @rx_g_over = Sprite.new @rx_g_over.bitmap = RPG::Cache.gameover(RX_T_GAMEOVER_PIC) # トランジション実行 Graphics.transition(40) # メインループ loop do # ゲーム画面を更新 Graphics.update # 入力情報を更新 Input.update # フレーム更新 rx_c_update # 画面が切り替わったらループを中断 if $scene != self break end end # ゲームオーバーグラフィックを解放 @rx_g_over.bitmap.dispose @rx_g_over.dispose # 戦闘テストの場合 if $BTEST $scene = nil end end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update # バトルイベント実行中の場合 if $game_system.battle_interpreter.running? # インタプリタを更新 $game_system.battle_interpreter.update # アクションを強制されているバトラーが存在しない場合 if $game_temp.forcing_battler == nil # バトルイベントの実行が終わった場合 unless $game_system.battle_interpreter.running? # 戦闘継続の場合、バトルイベントのセットアップを再実行 unless judge setup_battle_event end end # アフターバトルフェーズでなければ if @phase != 5 # ステータスウィンドウをリフレッシュ @status_window.refresh end end end # システム (タイマー)、画面を更新 $game_system.update $game_screen.update # タイマーが 0 になった場合 if $game_system.timer_working and $game_system.timer == 0 # バトル中断 $game_temp.battle_abort = true end # ウィンドウを更新 @help_window.update @party_command_window.update @actor_command_window.update @status_window.update @message_window.update # スプライトセットを更新 @spriteset.update # トランジション処理中の場合 if $game_temp.transition_processing # トランジション処理中フラグをクリア $game_temp.transition_processing = false # トランジション実行 if $game_temp.transition_name == "" Graphics.transition(20) else Graphics.transition(40, "Graphics/Transitions/" + $game_temp.transition_name) end end # メッセージウィンドウ表示中の場合 if $game_temp.message_window_showing return end # エフェクト表示中の場合 if @spriteset.effect? return end # ゲームオーバーの場合 if $game_temp.gameover # ★ ゲームオーバー画面に切り替え(改造ポイント) rx_game_over return end # タイトル画面に戻す場合 if $game_temp.to_title # タイトル画面に切り替え $scene = Scene_Title.new return end # バトル中断の場合 if $game_temp.battle_abort # バトル開始前の BGM に戻す $game_system.bgm_play($game_temp.map_bgm) # バトル終了 battle_end(1) return end # ウェイト中の場合 if @wait_count > 0 # ウェイトカウントを減らす @wait_count -= 1 return end # アクションを強制されているバトラーが存在せず、 # かつバトルイベントが実行中の場合 if $game_temp.forcing_battler == nil and $game_system.battle_interpreter.running? return end # フェーズによって分岐 case @phase when 1 # プレバトルフェーズ update_phase1 when 2 # パーティコマンドフェーズ update_phase2 when 3 # アクターコマンドフェーズ update_phase3 when 4 # メインフェーズ update_phase4 when 5 # アフターバトルフェーズ update_phase5 end end end