diff --git a/load/bgm.lua b/load/bgm.lua index 749aed8..feb075d 100644 --- a/load/bgm.lua +++ b/load/bgm.lua @@ -6,6 +6,7 @@ bgm = { } local current_bgm = nil +local pitch = 1 local bgm_locked = false function switchBGM(sound, subsound) @@ -84,5 +85,13 @@ end function resumeBGM() if current_bgm ~= nil then current_bgm:play() + current_bgm:setPitch(pitch) + end +end + +function pitchBGM(new_pitch) + pitch = new_pitch + if current_bgm ~= nil then + current_bgm:setPitch(pitch) end end diff --git a/scene/game.lua b/scene/game.lua index d941114..21e4c91 100644 --- a/scene/game.lua +++ b/scene/game.lua @@ -81,6 +81,7 @@ function GameScene:onInputPress(e) scene = e.input == "retry" and GameScene(self.retry_mode, self.retry_ruleset, self.secret_inputs) or ModeSelectScene() elseif e.input == "retry" then switchBGM(nil) + pitchBGM(1) self.game:onExit() scene = GameScene(self.retry_mode, self.retry_ruleset, self.secret_inputs) elseif e.input == "pause" and not (self.game.game_over or self.game.completed) then diff --git a/scene/replay.lua b/scene/replay.lua index cf1cd78..a9af502 100644 --- a/scene/replay.lua +++ b/scene/replay.lua @@ -107,6 +107,8 @@ function ReplayScene:onInputPress(e) e.input == "menu_decide" or e.input == "retry" ) then + switchBGM(nil) + pitchBGM(1) self.game:onExit() loadSave() love.math.setRandomSeed(os.time()) @@ -126,11 +128,13 @@ function ReplayScene:onInputPress(e) if self.replay_speed < 1 then self.replay_speed = 1 end + pitchBGM(self.replay_speed) elseif e.input == "right" then self.replay_speed = self.replay_speed + 1 if self.replay_speed > 99 then self.replay_speed = 99 end + pitchBGM(self.replay_speed) elseif e.input == "hold" then self.show_invisible = not self.show_invisible end diff --git a/scene/replay_select.lua b/scene/replay_select.lua index aecb468..4101075 100644 --- a/scene/replay_select.lua +++ b/scene/replay_select.lua @@ -47,8 +47,6 @@ function ReplaySelectScene:new() end function ReplaySelectScene:update() - switchBGM(nil) -- experimental - if self.das_up or self.das_down or self.das_left or self.das_right then self.das = self.das + 1 else diff --git a/tetris/modes/gamemode.lua b/tetris/modes/gamemode.lua index 980f00f..7bebb06 100644 --- a/tetris/modes/gamemode.lua +++ b/tetris/modes/gamemode.lua @@ -400,6 +400,7 @@ end function GameMode:onGameOver() switchBGM(nil) + pitchBGM(1) local alpha = 0 local animation_length = 120 if self.game_over_frames < animation_length then