Программирование игр для Windows. Советы профессионала


Использование звука в играх - часть 2


// первого звука в очереди

else

// если запрашиваемый звуковой эффект имеет более высокий

// приоритет, чем текущий звук (например, игрок выстрелил

// из ружья) - прервать текущий звук и начать исполнение

// эффекта с более высоким приоритетом

else

// если запрашиваемый звуковой эффект имеет меньший приоритет,

// чем текущий звук, установить его в очередь

end

Алгоритм 9.1 - весьма хороший черновой пример планировщика. Он позволяет организовать очередь звуков и контролировать их исполнение.

Но все-таки если во время компьютерной игры может раздаваться только один звук в каждый момент времени, это будет слишком скучно. Как же воспроизводить несколько звуков одновременно? Мы можем это сделать с помощью одного трюка.

Представьте, что звук выстрела из лазерного пистолета и звук рычания страшного чудовища должны раздаться одновременно. Предположим также, что у них одинаковый приоритет. По Алгоритму 9.1 мы должны бросить жребий и сыграть их последовательно. Но почему нельзя сложить звуки вместе и получить требуемый результат?

Это вполне возможно. Мы используем теорему о суперпозиции, которая говорит о том, что две любые волны в пространстве могут накладываться одна На другую и в результате порождать новую волну. В нашем случае мы должны сложить данные VOC-файлов.

Есть только проблема в применении этого метода: пространство и время безграничны, но восемь битов остаются восемью битами! Во время сложения двух волн мы можем выйти за пределы восьми или шестнадцати бит. Здесь можно поступить по-разному:

§

Мы можем просто отсечь звук по границе восьми или шестнадцати бит;

§          Мы можем брать только процентное соотношение волн, что гарантирует попадание их суммы в нужные нам пределы.

Алгоритм 9.2 представляет собой один из вариантов процедуры наложения звуков.

Алгоритм 9.2. Псевдокод наложения звуков.

length one=length (sound one)

length two=length (sound two)

if length one > length two

// обработать первую часть звука




Начало  Назад  Вперед



Книжный магазин