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


Использование функций драйвера для проигрывания VOC-файлов - часть 5


} // конец функции

Функция Voc_Play_Sound из Листинга 9.5 работает следующим образом:

§          Адрес VOC-файла, который мы хотим проиграть, из памяти передается в функцию;

§          Затем функция использует две крайне полезные макрокоманды FP_SEG () и FP_OFF(), получая таким образом сегмент и смещение стартового адреса буфера с VOC-файлом;

§          Сегмент и смещение помещаются в регистровую пару ES:DI в соответствии с требованиями драйвера;

§          Вызывается драйвер.

И, пожалуйста - звучит музыка!

В первых ваших собственных играх, так же, как и в игре, которую мы напишем в этой книге, я полагаю, вы будете придерживаться оцифрованных звуков. Воспроизведение такой музыки не слишком сложно, однако и это все же требует некоторых усилий и понимания. В Листинге 9.6 показан полный текст программы, включающий простое меню для воспроизведения нескольких простых мелодий. Перед запуском программы убедитесь, что;

§          Все VOC-файлы расположены в текущем каталоге;

§          CT-VOICE.DRV также находится в текущем каталоге.

Последнее замечание по поводу воспроизведения оцифрованного звука: после того, как ваша программа начнет проигрывание мелодии, она может делать, что угодно. Лучше всего — продолжить игровой цикл. Операции по воспроизведению звука будут полностью выполняться картой Sound Blaster и аппаратным обеспечением прямого доступа к памяти. Вашей программе не нужно ничего делать, за исключением собственно запуска этого процесса (и затем - его остановки), а это занимает всего несколько микросекунд.

Листинг 9.6. Полная программа воспроизведения звука.

// ВКЛЮЧАЕМЫЕ ФАЙЛЫ ////////////////////////////////////////

#include <io.h>

#include <stdio.h>

#include <stdlib.h>




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