Minimalist Sound Manager (Español)
Un administrador de sonido minimalista para hacer más fácil sonidos sin añadir una biblioteca entera:
do
-- contenedor para las fuentes que se esten reproduciendo
local sources = {}
-- revisa si hay fuentes que terminaron de reproducirse y las remueve
-- añadir a love.update
function love.audio.update()
local remove = {}
for _,s in pairs(sources) do
if s:isStopped() then
remove[#remove + 1] = s
end
end
for i,s in ipairs(remove) do
sources[s] = nil
end
end
-- sobrescribe love.audio.play para crear y registrar la fuente si se necesita
local play = love.audio.play
function love.audio.play(what, how, loop)
local src = what
if type(what) ~= "userdata" or not what:typeOf("Source") then
src = love.audio.newSource(what, how)
src:setLooping(loop or false)
end
play(src)
sources[src] = src
return src
end
-- detiene una fuente
local stop = love.audio.stop
function love.audio.stop(src)
if not src then return end
stop(src)
sources[src] = nil
end
end
Ahora puedes reproducir efectos de sonido y música de fondo sin preocuparte de los objetos de fuente (source):
function love.load()
-- seguiras teniendo un manejador de fuentes si lo necesitas
bgm = love.audio.play("background-music.ogg", "stream", true) -- reproduce y repite musica de fondo
end
function love.update(dt)
love.audio.update()
end
function love.keypressed(key)
if key == 's' then
love.audio.stop(bgm)
elseif key == 'p' then
love.audio.play(bgm) -- sigue reproduciendo y repitiendose
else
love.audio.play("explosion.ogg") -- reproduce un sonido de explosion una vez
end
end
Otros idiomas
Dansk –
Deutsch –
English –
Español –
Français –
Indonesia –
Italiano –
Lietuviškai –
Magyar –
Nederlands –
Polski –
Português –
Română –
Slovenský –
Suomi –
Svenska –
Türkçe –
Česky –
Ελληνικά –
Български –
Русский –
Српски –
Українська –
עברית –
ไทย –
日本語 –
正體中文 –
简体中文 –
Tiếng Việt –
한국어
More info