Вот решил выложить свои классы по работе со звуком и музыкой. Они у меня уже не менялись где-то четыре игры подряд, так что можно считать, что их функционал подходить под большинство игр. Классы используют выкладываемые ранее модули ageMath и ageVector (они уже включены в исходники примера в конце поста).
Звуковой класс может воспроизводить только одиночные звуки. Петли и зацикленные эффекты планируется добавить в будущем. Просто пока мне это было не нужно в предыдущих играх класс может также воспроизводить объемный звук, учитывая расстояние до объекта и его положение относительно слушателя.
Музыкальный класс может воспроизводить зациклено музыкальные треки а также обеспечивать плавную смену музыки путём затухания.
Классы все статические, поэтому создавать их экземпляры не требуется. У всех классов можно менять громкость и отключать звук.
Смотрим пример (жмём на жёлтые кружочки, чтобы было весело):
Использовать класс sounds весьма просто. Для начала надо в функции init написать те, звуки которые будут загружены:
//Здесь втыкаем свои звуки snd['mysnd'] = new mysnd();
потом надо инициализировать класс в основной программе:
sounds.init(500,400);
Вот вообщем-то и всё! Теперь мы можем вызывать воспроизведение звука где нам это необходимо:
sounds.PlaySnd('mysnd',1,b1);
первый параметр это имя звука, которое мы задали в функции init. Второй – это сила звука, для взрывов например можно ставить 2 или 3. Последний параметр это эмиттер звука. Его координаты будут использованы для расчёта затухания звука, а также его панорамирования. Если задать только имя звука – он будет воспроизведён без учёта положения. Все звуки воспроизводятся относительно координат sounds.cenX и sounds.cenY. По умолчанию это центр экрана (все расчёты ведутся в глобальных координатах Stage). Также можно привязать слушателя к конкретному объекту, для этого необходимо будет менять cenX и cenY в основной программе (не забывая переводить координаты в глобальную систему координат).
Громкость звуков можно менять с помощью переменной sounds.vol. Отключить все звуки можно задав переменной sounds.sndEnable=false.
Класс sounds: [...]
Читать дальше: Звуки и музыка:
Комментариев нет:
Отправить комментарий