Added sound manager.
This commit is contained in:
@@ -2,17 +2,18 @@
|
|||||||
-- Imports
|
-- Imports
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local love = require 'love'
|
local love = require 'love'
|
||||||
local assets = require 'src.utils.asstmngr'
|
local assets = require 'src.utils.asstmngr'
|
||||||
local make_class = require 'src.utils.classes'
|
local sound_manager = require 'src.sound.sndmngr'
|
||||||
local constants = require 'src.gstates.menus.const'
|
local make_class = require 'src.utils.classes'
|
||||||
local GameState = require 'src.gstates.gstate'
|
local constants = require 'src.gstates.menus.const'
|
||||||
local MainMenu = require 'src.gstates.menus.mainmenu'
|
local GameState = require 'src.gstates.gstate'
|
||||||
local OptionsMenu = require 'src.gstates.menus.options'
|
local MainMenu = require 'src.gstates.menus.mainmenu'
|
||||||
local Fader = require 'src.graphics.fader'
|
local OptionsMenu = require 'src.gstates.menus.options'
|
||||||
local Cursor = require 'src.ui.cursor'
|
local Fader = require 'src.graphics.fader'
|
||||||
local Font = require 'src.ui.font'
|
local Cursor = require 'src.ui.cursor'
|
||||||
local SoundEffect = require 'src.sound.sfx'
|
local Font = require 'src.ui.font'
|
||||||
|
local SoundEffect = require 'src.sound.sfx'
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
@@ -58,7 +59,7 @@ end
|
|||||||
|
|
||||||
|
|
||||||
function Menu:update(dt)
|
function Menu:update(dt)
|
||||||
if not self.bgm:isPlaying() then self.bgm:play() end
|
if not self.bgm:isPlaying() then sound_manager:play_music(self.bgm) end
|
||||||
|
|
||||||
if self.all_loaded then
|
if self.all_loaded then
|
||||||
self.menus[self.current_menu]:update(dt)
|
self.menus[self.current_menu]:update(dt)
|
||||||
|
|||||||
@@ -2,16 +2,17 @@
|
|||||||
-- Imports
|
-- Imports
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local make_class = require 'src.utils.classes'
|
local make_class = require 'src.utils.classes'
|
||||||
local constants = require 'src.gstates.menus.const'
|
local constants = require 'src.gstates.menus.const'
|
||||||
local settings = require 'src.utils.settings'
|
local settings = require 'src.utils.settings'
|
||||||
local BaseMenu = require 'src.gstates.menus.base'
|
local sound_manager = require 'src.sound.sndmngr'
|
||||||
local Color = require 'src.utils.color'
|
local BaseMenu = require 'src.gstates.menus.base'
|
||||||
local HBox = require 'src.ui.hbox'
|
local Color = require 'src.utils.color'
|
||||||
local Label = require 'src.ui.label'
|
local HBox = require 'src.ui.hbox'
|
||||||
local TextButton = require 'src.ui.textbtn'
|
local Label = require 'src.ui.label'
|
||||||
local Checkbox = require 'src.ui.chkbox'
|
local TextButton = require 'src.ui.textbtn'
|
||||||
local Bar = require 'src.ui.bar'
|
local Checkbox = require 'src.ui.chkbox'
|
||||||
|
local Bar = require 'src.ui.bar'
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
@@ -67,6 +68,7 @@ function OptionsMenu:_init(parent, title_font, button_font)
|
|||||||
box:add(Bar(
|
box:add(Bar(
|
||||||
function(v)
|
function(v)
|
||||||
settings.musicvol = math.ceil(v)
|
settings.musicvol = math.ceil(v)
|
||||||
|
sound_manager:update_volumes()
|
||||||
end,
|
end,
|
||||||
function()
|
function()
|
||||||
return settings.musicvol
|
return settings.musicvol
|
||||||
|
|||||||
53
src/sound/sndmngr.lua
Normal file
53
src/sound/sndmngr.lua
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- Imports
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local make_class = require 'src.utils.classes'
|
||||||
|
local settings = require 'src.utils.settings'
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- Class definitions
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local SoundManager = make_class()
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- Class methods
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
function SoundManager:_init()
|
||||||
|
self.active_bgm = nil
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function SoundManager:play_sound(sfx)
|
||||||
|
sfx:setVolume(settings.soundvol / 100)
|
||||||
|
sfx:play()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function SoundManager:play_music(bgm)
|
||||||
|
if self.active_bgm ~= nil then
|
||||||
|
self.active_bgm:stop()
|
||||||
|
end
|
||||||
|
|
||||||
|
self.active_bgm = bgm
|
||||||
|
self.active_bgm:setVolume(settings.musicvol / 100)
|
||||||
|
self.active_bgm:play()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
function SoundManager:update_volumes()
|
||||||
|
if self.active_bgm ~= nil then
|
||||||
|
self.active_bgm:setVolume(settings.musicvol / 100)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
-- Module return
|
||||||
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
return SoundManager()
|
||||||
@@ -5,6 +5,7 @@
|
|||||||
local love = require 'love'
|
local love = require 'love'
|
||||||
local make_class = require 'src.utils.classes'
|
local make_class = require 'src.utils.classes'
|
||||||
local Drawable = require 'src.graphics.drawable'
|
local Drawable = require 'src.graphics.drawable'
|
||||||
|
local Asset = require 'src.utils.asset'
|
||||||
local Sprite = require 'src.graphics.sprite'
|
local Sprite = require 'src.graphics.sprite'
|
||||||
local Font = require 'src.ui.font'
|
local Font = require 'src.ui.font'
|
||||||
|
|
||||||
@@ -13,7 +14,6 @@ local Font = require 'src.ui.font'
|
|||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
local AssetManager = make_class(Drawable)
|
local AssetManager = make_class(Drawable)
|
||||||
local Asset = require 'src.utils.asset'
|
|
||||||
|
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user