Музыкальный плеер
Вы можете написать для игры свой проигрыватель музыки, создав его на основе живого объекта, например:
lua
-- играет треки в случайном порядке
require "snd"
obj {
{
tracks = {"mus/astro2.mod",
"mus/aws_chas.xm",
"mus/dmageofd.xm",
"mus/doomsday.s3m"};
};
nam = 'плеер';
life = function(s)
if not snd.music_playing() then
local n = s.tracks[rnd(#s.tracks)]
snd.music(n, 1);
end
end;
}:lifeon();Ниже приводится пример более сложного плеера. Меняем трек только если он закончился или прошло более 2 минут и игрок перешёл из комнаты в комнату. В каждом треке можно указать число проигрываний (0 - зацикленный трек):
lua
require "timer"
global { track_time = 0 };
obj {
nam = 'player';
pos = 0;
{
playlist = { '01 Frozen sun.ogg', 0,
'02 Thinking.ogg', 0,
'03 Melancholy.ogg', 0,
'04 Everyday happiness.ogg', 0,
'10 Good morning again.ogg', 1,
'15 [Bonus track] The end (demo cover).ogg', 1
};
};
tick = function(s)
if snd.music_playing() and ( track_time < 120 or not player_moved() ) then
return
end
track_time = 0
if s.pos == 0 then
s.pos = 1
else
s.pos = s.pos + 2
end
if s.pos > #s.playlist then
s.pos = 1
end
snd.music('mus/'..s.playlist[s.pos], s.playlist[s.pos + 1]);
end;
}
game.timer = function(s)
track_time = track_time + 1
music_player:tick();
end
function init()
timer:set(1000)
end