BGM管理を各シーンで利用しよう
タイトルシーンへの組み込み
まずは「Title」シーンに組み込みます。
_ready
関数を次のように書き換えます。
func _ready() -> void: # シーン開始 SceneManager.effect_enter_scene() BgmManager.start_bgm()
関数の末尾でBGMを再生します。
迷路シーンへの組み込み
続いて「Maze」シーンに組み込みます。
_ready
関数を次のように書き換えます。
func _ready() -> void: #MazeUtil.test_gen_maze() # シーン開始 SceneManager.effect_enter_scene() BgmManager.start_bgm() # 迷路データの作成と表示 var w = 13 var h = 9 var maze_info = MazeUtil.gen_maze(w, h) MazeLayout.layout(self, maze_info)
迷路を作成する前に、BGMを再生します。
続いて、_on_goal_enter
関数を次のように書き換えます。
# プレイヤーがゴールした func _on_goal_enter(_area) -> void: # プレイヤーを停止して、クリアシーンを追加 player.is_act = false add_child(clear_scene.instantiate()) # クリア音楽を流したあと、シーンを変更 BgmManager.bgm_off() var audio = $AudioStreamPlayer audio.play() await get_tree().create_timer(audio.stream.get_length() + 1).timeout BgmManager.bgm_on() SceneManager.load_scene(SceneManager.TITLE)
ジングルを鳴らすあいだBGMをオフにして、ジングルが鳴り終わったらBGMをオンにします。
今回作成する処理はここまでです。
実行確認
「Title」シーンを実行して、ここまでの処理を確認しましょう。画面遷移とBGMが組み込まれています。