Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Листинг 9.5. Проигрывание VОС-файла из памяти.

Листинг 8.2. Демонстрационная программа новой функции масштабирования (VYREN.C). | Алгоритм 8.1. Масштабирование спрайта. | Формула 8.3. Вычисление вектора скорости. | Формула 8.4. Вычисление угла между наблюдателем и объектом. | Листинг 8.3. Последний Шаттл (FINVYREN.C). | Создание студии | ЗВУКОВЫЕ ЭФФЕКТЫ И МУЗЫКА | Функция 0: Получить версию драйвера | Функция 12: Прервать цикл вывода звука | Листинг 9.1. Выделение памяти для CT-VOICE.DRV. |


Читайте также:
  1. Выбор частоты или ячейки памяти.
  2. Законы памяти. Процесс запоминания и приемы повышения эффективности памяти. Факторы, способствующие запоминанию.
  3. Лавируя между столами, стараемся зафиксировать все увиденное в памяти.
  4. Листинг 11.2. Структура данных игрока.
  5. Листинг 11.3. Функции полета мухи.
  6. Листинг 11.4. Муравейник (ANTS.С).
  7. Листинг 11.5. Падение мяча (BALL.C).

int Voc_Play_Sound(unsigned char far *addr,

unsigned char header_length)

{

// проигрывает загруженный в память VOC-файл

unsigned segm, offm;

segm = _FP_SEG(addr);

offm = _FP_OFF(addr) + header_length;

_asm{

mov bx,6; функция 6 - воспроизведение VOC-файла

mov ax,segm

mov es,ax; в регистр ES загружается сегмент

mov di,offm; в регистр DI загружается смещение

call driver_ptr; вызов драйвера

} // конец ассемблерной вставки

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

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

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

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

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

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

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

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

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

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

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


Дата добавления: 2015-07-12; просмотров: 117 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Листинг 9.2. Загрузка VОС-файла.| Листинг 9.6. Полная программа воспроизведения звука.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)