пятница, 15 апреля 2011 г.

Звуки и музыка

Вот решил выложить свои классы по работе со звуком и музыкой. Они у меня уже не менялись где-то четыре игры подряд, так что можно считать, что их функционал подходить под большинство игр. Классы используют выкладываемые ранее модули 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: [...]

Читать дальше: Звуки и музыка:

Комментариев нет:

Отправить комментарий