
Звук играет очень ответственную роль в компьютерных играх. Существет два
различных типа звуков: фоновая музыка и звуковые эффекты. Фоновая музыка обычно
состоит из продолжительной части midi музыки, которая постоянно повторяется. В
то время, как звуковые эффекты - это короткие wav файлы. Чтобы получить
непосредственный эффект, данные части сохраняются в памяти. В связи с чем
заранее проверь, чтобы они не были слишком длинными.
Звуки добавляются в твою игру в виде звуковых ресурсов. Проверь, чтобы
названия, которые ты используешь - были допустимыми для имен переменных.
В отношении звуков имеется один нюанс, который может сперва озадачить тебя,
это количество буферов. Система может проигрывать только один wav файл в одно
и тоже время. Это означает, что когда ты используешь эффект повторно, до того
как предыдущий звук был завершен, предыдущий звук будет прерван. Согласись,
что это не очень удобно. Таким образом, когда имеются несколько звуковых
эффектов, которые используются одновременно (например ружейные выстрелы) тебе
нужно сохранить их несколько раз. Этот число - количество буферов. Чем больше
количество буферов определено для звука, тем больше раз он может быть
проигран одновременно, но не стоит также забывать, что при этом используется
и больше памяти. Поэтому используй данную возможность с осторожностью. Game
Maker автоматически использует первый доступный буфер, поэтому достаточно
только указать требуемое число и больше на этот счет не придется волноваться.
Существуют четыре основных функции, связанные с обработкой звука: две - для
проигрывания звука, одна - для проверки проигрывается ли звук, и одна для
остановки звука. Все они используют индекс звука в качестве параметра. Название
звука и является индексом. Но ты можешь также сохранить индекс в переменной и
использовать только ее.
sound_play(index) - Проигрывает указанный звук единажды.
sound_loop(index) - Проигрывает указанный звук, в непрерывном цикле.
sound_stop(index) - Останавливает указанный звук. Если существует несколько звуков с данным индексом проигрываемых одновременно, остановлены будут все.
sound_isplaying(index) - Возвращение, если проигрывается указанный звук.
Все это также возможно при использования звуковых эффектов. Это относится
только к wav файлам, midi файлы для этого не используются. Если ты хочешь
использовать определенные звуковые эффекты, ты должен указать это во вкладке
advanced в свойствах звука, активировав соответствующее поле. Обрати внимание,
что звуки, которые содержат эффекты, расходуют большее количество ресурсов чем
другие звуки. После того, как в данном поле будет стоять галочка, ты можешь
использовать нижеследующие вызовы. Имеются три типа звуковых эффектов. Прежде
всего ты можешь изменить громкость. Значение 0 означает полное отсутствие
звука. Значение 1 - изначальная громкость звука. (Ты не можешь указать
громкость большую чем изначальную). Во-вторых, ты можешь изменить панараму
(баланс), то есть направление (источник), откуда идет звук. Значение 0 - только
слева. Значение 1 указывает, что звук идет только из правого динамика. 0.5 -
значение по умолчанию, которое находится по средине. Ты можешь использовать
баланс, например чтобы услышать как объект шагает слева направо. И наконец ты
можешь изменять частоту звука. Это может использоваться например - для
изменения скорости двигателя. Значение 0 - самая низкая частота; значение 1 -
максимальная частота.
sound_volume(index,value) - Изменяет громкость для указанного звука (0 = тише, 1 = громче).
sound_pan(index,value) - Изменяет панораму для указанного звука (0 = лево, 1 = право).
sound_frequency(index,value) - Изменяет частоту для указанного звука (0 = ниже, 1 = выше).
Звуки используют много ресурсов и большинство систем может сохранять и
проигрывать только ограниченное число звуков. Если ты делаешь большую игру, ты
захочешь иметь максимальный контроль над звуками загруженными в память в
определенный момент. Ты можешь использовать опцию "load-on-use" для звуков,
чтобы быть уверенным, что звуки загружаются только тогда, когда они нужны.
Хотя существует проблемы, которая может вызвать глюк, когда звук используется
впервые. Также, данная опция не сильно поможет, если ты имеешь только одну
большую комнату. Для более полного контроля ты можешь использовать следующие
функции.
sound_discard(index) - Освобождает память, используемую для указанного звука.
sound_restore(index) - Восстанавливает указанный звук в памяти.
discard_all() - Отказ от всех спрайтов, фоновых изображений и звуков, которые имеют установку "загрузка на использование" (load-on-use).
Звук - сложный материал. Midi файлы проигрываются, используя стандартный
мультимедиа проигрыватель. Одновременно может быть проигран только один midi
файл, также следует заметить что не получится использовать midi в качестве
звуковых эффектов. Для wav файлов Game Maker использует DirectSound. В данном
случае все wav файлы сохраняются в памяти и могут содержать эффекты. Game Maker
реально может также проигрывать файлы других музыкальных форматов, если ты
определишь их, в частности это касается mp3 файлов. Для их проигрывания
используется стандартный мультимедиа проигрыватель. Хотя будь крайне
осторожен. Будут ли проигрываться файлы mp3, зависит от самой системы, а
иногда и от другого установленного или запущенного программного обеспечения.
Поэтому мы не рекомендуем использовать mp3 файлы, в распространяемых тобой
играх.
© 2001 Simple Life & World
|