diff --git a/load/sounds.lua b/load/sounds.lua index c00856f..6a4877c 100644 --- a/load/sounds.lua +++ b/load/sounds.lua @@ -14,6 +14,11 @@ sounds = { cursor_lr = love.audio.newSource("res/se/cursor_lr.wav", "static"), main_decide = love.audio.newSource("res/se/main_decide.wav", "static"), mode_decide = love.audio.newSource("res/se/mode_decide.wav", "static"), + lock = love.audio.newSource("res/se/lock.wav", "static"), + erase = love.audio.newSource("res/se/erase.wav", "static"), + fall = love.audio.newSource("res/se/fall.wav", "static"), + ready = love.audio.newSource("res/se/ready.wav", "static"), + go = love.audio.newSource("res/se/go.wav", "static"), } function playSE(sound, subsound) @@ -31,3 +36,19 @@ function playSE(sound, subsound) sounds[sound][subsound]:play() end end + +function playSEOnce(sound, subsound) + if subsound == nil then + sounds[sound]:setVolume(0.1) + if sounds[sound]:isPlaying() then + return + end + sounds[sound]:play() + else + sounds[sound][subsound]:setVolume(0.1) + if sounds[sound][subsound]:isPlaying() then + return + end + sounds[sound][subsound]:play() + end +end \ No newline at end of file diff --git a/res/se/bottom.wav b/res/se/bottom.wav index 73a804f..7fc6671 100644 Binary files a/res/se/bottom.wav and b/res/se/bottom.wav differ diff --git a/res/se/erase.wav b/res/se/erase.wav new file mode 100644 index 0000000..76dbf99 Binary files /dev/null and b/res/se/erase.wav differ diff --git a/res/se/fall.wav b/res/se/fall.wav new file mode 100644 index 0000000..01f5060 Binary files /dev/null and b/res/se/fall.wav differ diff --git a/res/se/go.wav b/res/se/go.wav new file mode 100644 index 0000000..2fb52ff Binary files /dev/null and b/res/se/go.wav differ diff --git a/res/se/lock.wav b/res/se/lock.wav new file mode 100644 index 0000000..d89ec56 Binary files /dev/null and b/res/se/lock.wav differ diff --git a/res/se/ready.wav b/res/se/ready.wav new file mode 100644 index 0000000..21325d0 Binary files /dev/null and b/res/se/ready.wav differ diff --git a/scene/game.lua b/scene/game.lua index 8ecff33..18b8504 100644 --- a/scene/game.lua +++ b/scene/game.lua @@ -51,8 +51,10 @@ function GameScene:render() -- ready/go graphics if self.game.ready_frames <= 100 and self.game.ready_frames > 52 then love.graphics.draw(misc_graphics["ready"], 144 - 50, 240 - 14) + playSEOnce("ready") elseif self.game.ready_frames <= 50 and self.game.ready_frames > 2 then love.graphics.draw(misc_graphics["go"], 144 - 27, 240 - 14) + playSEOnce("go") end self.game:drawCustom() diff --git a/tetris/modes/gamemode.lua b/tetris/modes/gamemode.lua index ce11b39..31c77fd 100644 --- a/tetris/modes/gamemode.lua +++ b/tetris/modes/gamemode.lua @@ -161,6 +161,7 @@ function GameMode:update(inputs, ruleset) end if cleared_row_count > 0 then + playSE("erase") self.lcd = self:getLineClearDelay() self.are = self:getLineARE() if self.lcd == 0 then @@ -194,8 +195,12 @@ end -- event functions function GameMode:whilePieceActive() end -function GameMode:onPieceLock(piece, cleared_row_count) end +function GameMode:onPieceLock(piece, cleared_row_count) + playSE("lock") +end + function GameMode:onLineClear(cleared_row_count) end + function GameMode:onPieceEnter() end function GameMode:onHold() end @@ -248,6 +253,7 @@ function GameMode:processDelays(inputs, ruleset, drop_speed) self.lcd = self.lcd - 1 if self.lcd == 0 then self.grid:clearClearedRows() + playSE("fall") if self.are == 0 then self:initializeOrHold(inputs, ruleset) end