rewrite all COMPLETELY because im suck at this shit fr 🥀🥀🥀
This commit is contained in:
parent
28b0384285
commit
4883cc0e0c
BIN
assets/audio/music/level1/bass/bass.ogg
Normal file
BIN
assets/audio/music/level1/bass/bass.ogg
Normal file
Binary file not shown.
BIN
assets/audio/music/level1/drums.ogg
Normal file
BIN
assets/audio/music/level1/drums.ogg
Normal file
Binary file not shown.
BIN
assets/audio/music/level1/flute.ogg
Normal file
BIN
assets/audio/music/level1/flute.ogg
Normal file
Binary file not shown.
BIN
assets/audio/music/level1/guitar.ogg
Normal file
BIN
assets/audio/music/level1/guitar.ogg
Normal file
Binary file not shown.
BIN
assets/audio/music/level1/violin.ogg
Normal file
BIN
assets/audio/music/level1/violin.ogg
Normal file
Binary file not shown.
Binary file not shown.
BIN
assets/audio/sounds/hurt.ogg
Normal file
BIN
assets/audio/sounds/hurt.ogg
Normal file
Binary file not shown.
@ -0,0 +1,32 @@
|
|||||||
|
--- @class Audio
|
||||||
|
--- @field musicVolume number
|
||||||
|
--- @field soundVolume number
|
||||||
|
audio = {}
|
||||||
|
audio.__index = audio
|
||||||
|
|
||||||
|
local function new(musicVolume, soundVolume) -- здесь мы должны выгружать значения из файлика с сохранением настроек
|
||||||
|
return setmetatable({
|
||||||
|
musicVolume = musicVolume,
|
||||||
|
soundVolume = soundVolume
|
||||||
|
}, audio)
|
||||||
|
end
|
||||||
|
|
||||||
|
--- @param source love.Source
|
||||||
|
function audio:play(source)
|
||||||
|
if source:getType() == "static" then
|
||||||
|
source:setVolume(self.musicVolume)
|
||||||
|
return source:play()
|
||||||
|
end
|
||||||
|
source:setVolume(self.soundVolume)
|
||||||
|
return source:play()
|
||||||
|
end
|
||||||
|
|
||||||
|
function audio:setMusicVolume(volume)
|
||||||
|
self.musicVolume = volume
|
||||||
|
end
|
||||||
|
|
||||||
|
function audio:setSoundVolume(volume)
|
||||||
|
self.soundVolume = volume
|
||||||
|
end
|
||||||
|
|
||||||
|
return { new = new }
|
||||||
52
lib/music.lua
Normal file
52
lib/music.lua
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
-- --- @class Music
|
||||||
|
-- --- @field source table<string, love.Source> audio streams, that supports multitrack (kind of)
|
||||||
|
-- --- @field offset number
|
||||||
|
-- music = {}
|
||||||
|
-- music.__index = music
|
||||||
|
|
||||||
|
-- --- @param path string accepts path to dir with some music files (example: "main_ambient"; "player/theme1" and etc etc)
|
||||||
|
-- local function new(path)
|
||||||
|
-- local dir = Tree.assets.files.audio.music[path]
|
||||||
|
-- --- @type table<string, love.Source>
|
||||||
|
-- local source = {}
|
||||||
|
-- print(dir)
|
||||||
|
|
||||||
|
-- for _, v in pairs(dir) do
|
||||||
|
-- print(v.filename)
|
||||||
|
-- source[v.filename] = v.source
|
||||||
|
-- print(v.filename)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- print('[music]: new source: ', table.concat(source, ' '))
|
||||||
|
|
||||||
|
-- return setmetatable({ source = source, offset = 0 }, music)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- function music:update()
|
||||||
|
-- for _, v in ipairs(self.source) do
|
||||||
|
-- v:seek()
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- --- pause stemfile or music at all
|
||||||
|
-- --- @param filename? string
|
||||||
|
-- function music:pause(filename)
|
||||||
|
-- if filename then
|
||||||
|
-- self.source[filename]:pause()
|
||||||
|
-- else
|
||||||
|
-- for _, v in pairs(self.source) do
|
||||||
|
-- v:pause()
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- --- play music stemfile by his name
|
||||||
|
-- --- @param filename string
|
||||||
|
-- --- @return boolean
|
||||||
|
-- function music:play(filename)
|
||||||
|
-- print('[music]: ', table.concat(self.source, ' '))
|
||||||
|
-- self.source[filename]:seek(self.offset, "seconds")
|
||||||
|
-- return self.source[filename]:play()
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- return { new = new }
|
||||||
9
lib/sound.lua
Normal file
9
lib/sound.lua
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
-- --- @class Sound
|
||||||
|
-- --- @field source love.Source just a sound
|
||||||
|
-- sound = {}
|
||||||
|
|
||||||
|
-- local function new()
|
||||||
|
-- return setmetatable({}, sound)
|
||||||
|
-- end
|
||||||
|
|
||||||
|
-- return { new }
|
||||||
@ -144,7 +144,8 @@ function attack:cast(caster, target)
|
|||||||
AnimationNode {
|
AnimationNode {
|
||||||
function(node)
|
function(node)
|
||||||
targetSprite:animate("hurt", node)
|
targetSprite:animate("hurt", node)
|
||||||
Tree.assets.files.audio.sounds.hurt:play()
|
-- Tree.assets.files.audio.sounds.hurt:play()
|
||||||
|
Tree.audio:play(Tree.assets.files.audio.sounds.hurt)
|
||||||
end
|
end
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,7 @@ Tree.controls = require "lib.controls"
|
|||||||
Tree.level = (require "lib.level.level").new("procedural", "flower_plains") -- для теста у нас только один уровень, который сразу же загружен
|
Tree.level = (require "lib.level.level").new("procedural", "flower_plains") -- для теста у нас только один уровень, который сразу же загружен
|
||||||
|
|
||||||
Tree.behaviors = (require "lib.utils.behavior_loader")("lib/character/behaviors") --- @todo написать нормальную загрузку поведений
|
Tree.behaviors = (require "lib.utils.behavior_loader")("lib/character/behaviors") --- @todo написать нормальную загрузку поведений
|
||||||
|
Tree.audio = (require "lib.audio").new(1, 1)
|
||||||
-- Tree.behaviors.map = require "lib.character.behaviors.map"
|
-- Tree.behaviors.map = require "lib.character.behaviors.map"
|
||||||
-- Tree.behaviors.spellcaster = require "lib.character.behaviors.spellcaster"
|
-- Tree.behaviors.spellcaster = require "lib.character.behaviors.spellcaster"
|
||||||
-- Tree.behaviors.sprite = require "lib.character.behaviors.sprite"
|
-- Tree.behaviors.sprite = require "lib.character.behaviors.sprite"
|
||||||
|
|||||||
@ -50,9 +50,9 @@ function AssetBundle.loadFile(path)
|
|||||||
return love.graphics.newShader(path);
|
return love.graphics.newShader(path);
|
||||||
elseif (ext == "lua") then
|
elseif (ext == "lua") then
|
||||||
return require(string.gsub(path, ".lua", ""))
|
return require(string.gsub(path, ".lua", ""))
|
||||||
elseif (ext == "mp3") and string.find(path, "sounds") then
|
elseif (ext == "ogg") and string.find(path, "sounds") then
|
||||||
return love.audio.newSource(path, 'static')
|
return love.audio.newSource(path, 'static')
|
||||||
elseif (ext == "mp3") and string.find(path, "music") then
|
elseif (ext == "ogg") and string.find(path, "music") then
|
||||||
return love.audio.newSource(path, 'stream')
|
return love.audio.newSource(path, 'stream')
|
||||||
end
|
end
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
3
main.lua
3
main.lua
@ -19,6 +19,9 @@ function love.load()
|
|||||||
Tree.level.turnOrder:endRound()
|
Tree.level.turnOrder:endRound()
|
||||||
print("Now playing:", Tree.level.turnOrder.current)
|
print("Now playing:", Tree.level.turnOrder.current)
|
||||||
love.window.setMode(1080, 720, { resizable = true, msaa = 4, vsync = true })
|
love.window.setMode(1080, 720, { resizable = true, msaa = 4, vsync = true })
|
||||||
|
|
||||||
|
-- Level1_music = (require "lib.music").new("level1/bass")
|
||||||
|
-- Level1_music:play("bass")
|
||||||
end
|
end
|
||||||
|
|
||||||
local lt = "0"
|
local lt = "0"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user