Интернет магазин музыки, mp3 почтой, заказать mp3 диски

баннер интернет-магазина ножей nifovka.ru

RSS - RSS,
Карта сайта

Rambler's Top100

Написать на e-mail © 2007-2012 г.

Все туры в Парагвай от ведущих: бронирование отелей по всему миру.



Теги страницы:

Как изменить звуковой движок, чтобы приспособить его к новому для него факту, что можно воспроизводить больше одного звука. Проблема звукового движка в том, что он отслеживает состояние только одного сегмента (IPireelMusicSegmeritStateS). Воспроизведите один раз и движок будет заполнен интерфейсом нового состояния сегмента; воспроизведите другой, и произойдет в точности то же самое, но вы навсегда потеряете состояние первого звука. Что хуже, состояние первого сегмента никогда не освобождается, создавая утечку ресурсов.

Пришло время навести во всем этом порядок. Звуковому движку нужен новый класс - CSouiidinstancc, Этот новый класс будет представлять текущий воспроизводимый звук. Метод CSound-Play будет создавать (и возвращать) новый CsoundInstance каждый раз, когда воспроизводится этот звук. Таким образом, код, который вызывает Play, может следить за состоянием отдельного экземпляра (instance) звука. Это очень важно, когда звуковые эффекты играют по циклу. Обычно, большинство кодов, вызывающих Play для нециклических звуковых эффектов, не будет заботиться о звуке, когда он уже воспроизведен. Когда игрок запускает снаряд, код, ответственный за это место, отрегулирует звуковые параметры (громкость), воспроизведет звук, а в дальнейшем будет его проигрывать с этими параметрами. Подобно грилю Ron Popeil, код настраивает это, а потом забывает о нем.

Для воспроизводимых по циклу звуков модель будет немного другой. Обычно воспроизводимый по циклу звук должен быть настроен в соответствии с игровой ситуацией, Представьте себе шум генератора мощности в стратегической игре в реальном времени. Сначала он едва слышен, но потом, когда игрок создает завод супер оружия, мощных ракет, шум становится заметней. Экземпляры звука станут более необходимыми по мере того, когда вы начнете изучать трехмерный звук, и они станут очень важными. Каждый экземпляр звука будет обладать трехмерным положением и некоторыми другими свойствами, которые вы сможете настраивать.

Совет. Взаимосвязь CSound и CSoundlnstance - это обычный пример в игровом программировании. Б двумерных играх у вас есть спрайты которые представляют собой набор отдельных битмапов, задающих отдельные фазы движения персонажей в игре. Битмап представляет собой обычную картинку к iком ¦либо двоичном формате. Это позволяет вам иметь много (при которые используют один битмап, и это спасает от ненужного дублирования данных этого изображения. В звуковом движке CSound играет роль битмста, a CSoundlnstance - спрайта.