#============================================================================== # □ サウンドテスト (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20120704 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["サウンドテスト"] = true if $rgsslab["サウンドテスト"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Scene_Sound_Test #-------------------------------------------------------------------------- # ○ フォルダの指定 # FOLDER_NAMEにサウンドテスト背景グラフィックファイルが収められた # フォルダ名を指定します。 # # パスは、FOLDER_NAMEの値/グラフィック(拡張子省略)と # なります。(Graphicsフォルダ以外の指定も可能) # # 通常は、既存のフォルダから指定する事になりますが # 自分で作成したフォルダに指定する事もできます。 #-------------------------------------------------------------------------- FOLDER_NAME = "Graphics/Titles1" #-------------------------------------------------------------------------- # ○ 背景の設定 # 背景の設定を行います。 # # "" : 背景なし # "ファイル名" : 指定されたフォルダから背景として使用(FOLDER_NAMEから経由) # # 尚、イベントコマンドのスクリプトで # 後から設定変更する事ができます。 # # ・イベントコマンドのスクリプトでの変更方法 # $game_system.rgsslab111.background = "ファイル名" #-------------------------------------------------------------------------- BACKGROUND = "Fountain" #-------------------------------------------------------------------------- # ○ 音楽設定 # ・記述方法 # 整理番号 => ["ファイル名", "表示名"], # (最後の設定のみ、後ろのカンマを省略する事ができます) # # 整理番号は、上から順に描画する際に # 使われる番号です。 # (必ず、0から書き始めて下さい) # # "ファイル名"は、音楽ファイル名そのものを記述します。 # (存在しないファイル名を指定すると、演奏できません) # # "表示名"は、サウンドテスト時の音楽に名前を指定したい場合に # 記述します。 # (省略すると、ファイル名で表示されるようになります) #-------------------------------------------------------------------------- BGMS = { 0 => ["Airship", "飛行船"], 1 => ["Battle1", "戦闘1"], 2 => ["Battle2", "戦闘2"], 3 => ["Battle3", "戦闘3"], } #-------------------------------------------------------------------------- # ○ 終了の文字列 # 終了の文字列を設定します。 #-------------------------------------------------------------------------- EXIT = "終了" end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Scene_Sound_Test [module] #============================================================================== module RGSSLAB::Scene_Sound_Test #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "サウンドテスト" VERSION = 1 RELEASE = 20120704 #-------------------------------------------------------------------------- # ○ 設定エラー # error_number : エラー番号 #-------------------------------------------------------------------------- def self.setting_error(error_number) text = "【RGSS研究所:#{MATERIAL_NAME}】" case error_number when 1 msgbox_p text, "ファイルが見つかりません。" end end end #============================================================================== # ■ Cache [module] #============================================================================== module Cache #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_111 = RGSSLAB::Scene_Sound_Test #-------------------------------------------------------------------------- # ○ ステータス画面背景の取得 # filename : ファイル名 #-------------------------------------------------------------------------- def self.soundtest_background(filename) load_bitmap(RGSSLAB_111::FOLDER_NAME + "/", filename) end end #============================================================================== # ■ Game_System [class] #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rgsslab111 #-------------------------------------------------------------------------- # ● オブジェクト初期化 [エイリアス] #-------------------------------------------------------------------------- alias scene_sound_test_initialize initialize def initialize scene_sound_test_initialize @rgsslab111 = RgssLab_111.new end end #============================================================================== # □ RgssLab_111 [class] #============================================================================== class RgssLab_111 #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_111 = RGSSLAB::Scene_Sound_Test #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :background #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @background = RGSSLAB_111::BACKGROUND end end #============================================================================== # ■ Game_Interpreter [class] #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ○ サウンドテストの呼び出し #-------------------------------------------------------------------------- def call_sound_test SceneManager.call(Scene_SoundTest) Fiber.yield end end #============================================================================== # □ Window_SoundTestMain [class] #============================================================================== class Window_SoundTestMain < Window_Selectable #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_111 = RGSSLAB::Scene_Sound_Test #-------------------------------------------------------------------------- # ○ オブジェクト初期化 [オーバーライド] #-------------------------------------------------------------------------- def initialize if $rgsslab["XP画面サイズ"] super(48, 32, 272, 416) else super(0, 0, 272, 416) end self.index = 0 refresh end #-------------------------------------------------------------------------- # ○ 桁数の取得 [オーバーライド] #-------------------------------------------------------------------------- def col_max return 1 end #-------------------------------------------------------------------------- # ○ 項目数の取得 [オーバーライド] #-------------------------------------------------------------------------- def item_max RGSSLAB_111::BGMS.size + 1 end #-------------------------------------------------------------------------- # ○ リフレシュ [オーバーライド] #-------------------------------------------------------------------------- def refresh contents.clear for i in 0...item_max draw_item(i) end end #-------------------------------------------------------------------------- # ○ 項目の描画 # index : 項目番号 #-------------------------------------------------------------------------- def draw_item(index) rect = Rect.new(0, index * line_height, self.width, line_height) unless RGSSLAB::Scene_Sound_Test::BGMS[index] == nil if RGSSLAB_111::BGMS[index][1] contents.draw_text(rect, RGSSLAB_111::BGMS[index][1]) else contents.draw_text(rect, RGSSLAB_111::BGMS[index][0]) end else contents.draw_text(rect, RGSSLAB_111::EXIT) end end end #============================================================================== # □ Scene_SoundTest[class] #============================================================================== class Scene_SoundTest < Scene_Base #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_111 = RGSSLAB::Scene_Sound_Test #-------------------------------------------------------------------------- # ○ 開始処理 [オーバーライド] #-------------------------------------------------------------------------- def start @temp = RPG::BGM.last Audio.bgm_stop super create_spriteset create_all_windows end #-------------------------------------------------------------------------- # ○ スプライトセットの作成 #-------------------------------------------------------------------------- def create_spriteset @background_sprite = Sprite.new if $game_system.rgsslab111.background != "" @background_sprite.bitmap = Cache.soundtest_background($game_system.rgsslab111.background) end end #-------------------------------------------------------------------------- # ○ 全ウィンドウの作成 #-------------------------------------------------------------------------- def create_all_windows @window = Window_SoundTestMain.new @window.active = true end #-------------------------------------------------------------------------- # ○ フレーム更新 [オーバーライド] #-------------------------------------------------------------------------- def update super update_input end #-------------------------------------------------------------------------- # ○ フレーム更新:入力 #-------------------------------------------------------------------------- def update_input if Input.trigger?(:B) update_input_exit end if Input.trigger?(:C) update_input_play end if Input.trigger?(:A) update_input_stop end end #-------------------------------------------------------------------------- # ○ フレーム更新:入力 - 終了 #-------------------------------------------------------------------------- def update_input_exit return_scene end #-------------------------------------------------------------------------- # ○ フレーム更新:入力 - 演奏 #-------------------------------------------------------------------------- def update_input_play unless RGSSLAB_111::BGMS[@window.index] == nil Audio.bgm_play("Audio/BGM/" + RGSSLAB_111::BGMS[@window.index][0]) rescue RGSSLAB_111.setting_error(1) else update_input_exit end end #-------------------------------------------------------------------------- # ○ フレーム更新:入力 - 停止 #-------------------------------------------------------------------------- def update_input_stop Audio.bgm_stop end #-------------------------------------------------------------------------- # ○ 終了処理 [オーバーライド] #-------------------------------------------------------------------------- def terminate super if @temp.name != "" Audio.bgm_play("Audio/BGM/" + @temp.name) end dispose_spriteset end #-------------------------------------------------------------------------- # ○ スプライトセットの解放 #-------------------------------------------------------------------------- def dispose_spriteset @background_sprite.dispose end end end