#============================================================================== # □ ポーズ画面実装 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20120105 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["ポーズ画面実装"] = true if $rgsslab["ポーズ画面実装"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Scene_Pause_Mounting #-------------------------------------------------------------------------- # ○ ポーズ画面のボタン # ポーズ画面のボタンの設定を行います。 # # 他の素材と併用時において、ボタンが重複しないようご注意下さい。 #-------------------------------------------------------------------------- BUTTON = :F8 #-------------------------------------------------------------------------- # ○ ポーズ画面の色調 # ポーズ中による色調の設定を行います。 # # REDは赤の成分、GREENは緑の成分、BLUEは青の成分で # 範囲は、-255〜255の間で指定します。 # (範囲外は自動修正されます) #-------------------------------------------------------------------------- RED = -23 GREEN = -23 BLUE = -23 #-------------------------------------------------------------------------- # ○ ポーズ画面ウィンドウの位置 # ポーズ画面時によるウィンドウの位置を指定します。 # # Xは横、Yは縦、WIDTHは幅、HEIGHTは高さ # TEXT_SIZEは文字列の補正値です。(TEXTを参照) # # HEIGHTに関しては、ある程度の高さでないと # エラーの原因となる場合があります。 # # 又、TEXTによる文字列の長さによっては # 正確に表示できない場合もありますので、必ず確認しながら # 設定して下さい。 #-------------------------------------------------------------------------- X = 222 Y = 176 WIDTH = 100 HEIGHT = 48 TEXT_SIZE = 10 #-------------------------------------------------------------------------- # ○ ポーズ画面ウィンドウのスキン # ポーズ画面ウィンドウのスキンを指定します。 # # 無いものを指定すると、エラーになりますので # 正確に記述して下さい。 #-------------------------------------------------------------------------- SKIN = "Window" #-------------------------------------------------------------------------- # ○ ポーズ画面ウィンドウの不透明度 # 0にすると、完全に見えなくなります。 # 255にすると、完全表示となります。 # # 範囲外は自動修正されます。 #-------------------------------------------------------------------------- OPACITY = 160 #-------------------------------------------------------------------------- # ○ ポーズ画面ウィンドウで表示する文字列 # ポーズ画面中に表示する文字列を設定します。 # # 大きさによっては、正確に表示できない場合がありますので # 必ず確認して下さい。 # # RGSS3の標準では縁取りが標準となっている為 # その関係により縮んで描画されてしまう事があります。 # (その場合は、TEXT_SIZEで補正値を加えて下さい) #-------------------------------------------------------------------------- TEXT = "PAUSE" #-------------------------------------------------------------------------- # ○ ポーズ画面開始のSE # 開始のSEを指定します。 # # 拡張子は省略して下さい。 #-------------------------------------------------------------------------- START_SE = "save" #-------------------------------------------------------------------------- # ○ ポーズ画面終了のSE # 終了のSEを指定します。 # # 拡張子は省略して下さい。 #-------------------------------------------------------------------------- END_SE = "load" end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Scene_Pause_Mounting [module] #============================================================================== module RGSSLAB::Scene_Pause_Mounting #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "ポーズ画面実装" VERSION = 1 RELEASE = 20120105 end #============================================================================== # ■ Game_System [class] #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rgsslab077 #-------------------------------------------------------------------------- # ● オブジェクト初期化 [エイリアス] #-------------------------------------------------------------------------- alias scene_pause_initialize initialize def initialize scene_pause_initialize @rgsslab077 = RgssLab_077.new end end #============================================================================== # □ RgssLab_077 [class] #============================================================================== class RgssLab_077 #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_077 = RGSSLAB::Scene_Pause_Mounting #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :colors #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @colors = [0.0, 0.0, 0.0] end end #============================================================================== # ■ Scene_Map [class] #============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_077 = RGSSLAB::Scene_Pause_Mounting #-------------------------------------------------------------------------- # ● 開始処理 [エイリアス][オーバーライド] #-------------------------------------------------------------------------- alias scene_pause_start start def start scene_pause_start $game_map.screen.start_tone_change(Tone.new($game_system.rgsslab077.colors[0], $game_system.rgsslab077.colors[1], $game_system.rgsslab077.colors[2]), 0) end #-------------------------------------------------------------------------- # ● シーン遷移に関連する更新 [エイリアス] #-------------------------------------------------------------------------- alias scene_pause_update_scene update_scene def update_scene scene_pause_update_scene update_call_pause unless scene_changing? end #-------------------------------------------------------------------------- # ○ ポーズ画面呼び出しの更新 #-------------------------------------------------------------------------- def update_call_pause if Input.trigger?(RGSSLAB_077::BUTTON) && !$game_message.visible $game_player.straighten SceneManager.call(Scene_Pause) Audio.se_play("Audio/SE/" + RGSSLAB_077::START_SE) $game_system.rgsslab077.colors[0] = $game_map.screen.tone.red $game_system.rgsslab077.colors[1] = $game_map.screen.tone.green $game_system.rgsslab077.colors[2] = $game_map.screen.tone.blue $game_map.screen.start_tone_change(Tone.new(RGSSLAB_077::RED, RGSSLAB_077::GREEN, RGSSLAB_077::BLUE), 0) end end end #============================================================================== # □ Window_Pause [class] #============================================================================== class Window_Pause < Window_Base #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_077 = RGSSLAB::Scene_Pause_Mounting #-------------------------------------------------------------------------- # ○ オブジェクト初期化 [オーバーライド] #-------------------------------------------------------------------------- def initialize super(RGSSLAB_077::X, RGSSLAB_077::Y, RGSSLAB_077::WIDTH, RGSSLAB_077::HEIGHT) self.opacity = RGSSLAB_077::OPACITY self.windowskin = Cache.system(RGSSLAB_077::SKIN) refresh end #-------------------------------------------------------------------------- # ○ リフレッシュ #-------------------------------------------------------------------------- def refresh contents.clear str_size = contents.text_size(RGSSLAB_077::TEXT) contents.draw_text(0, 0, str_size.width + RGSSLAB_077::TEXT_SIZE, line_height, RGSSLAB_077::TEXT) end end #============================================================================== # □ Scene_Pause [class] #============================================================================== class Scene_Pause < Scene_Base #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_077 = RGSSLAB::Scene_Pause_Mounting #-------------------------------------------------------------------------- # ○ 開始処理 [オーバーライド] #-------------------------------------------------------------------------- def start super create_spriteset create_window @temp = Graphics.frame_count end #-------------------------------------------------------------------------- # ○ スプライトセットの作成 #-------------------------------------------------------------------------- def create_spriteset @spriteset = Spriteset_Map.new end #-------------------------------------------------------------------------- # ○ ウィンドウの作成 #-------------------------------------------------------------------------- def create_window @text_window = Window_Pause.new end #-------------------------------------------------------------------------- # ○ フレーム更新 [オーバーライド] #-------------------------------------------------------------------------- def update super if Input.trigger?(RGSSLAB_077::BUTTON) return_scene Audio.se_play("Audio/SE/" + RGSSLAB_077::END_SE) end end #-------------------------------------------------------------------------- # ○ 終了処理 #-------------------------------------------------------------------------- def terminate super dispose_spriteset Graphics.frame_count = @temp $game_map.screen.start_tone_change(Tone.new($game_system.rgsslab077.colors[0], $game_system.rgsslab077.colors[1], $game_system.rgsslab077.colors[2]), 0) end #-------------------------------------------------------------------------- # ○ スプライトセットの解放 #-------------------------------------------------------------------------- def dispose_spriteset @spriteset.dispose end end end