Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Листинг 9.5. Проигрывание VОС-файла из памяти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 и аппаратным обеспечением прямого доступа к памяти. Вашей программе не нужно ничего делать, за исключением собственно запуска этого процесса (и затем - его остановки), а это занимает всего несколько микросекунд.
|