Секреты программирования игр


         

Загрузка и компиляция Warlock


Исполняемый модуль называется WARLOCK.EXE. Для запуска программы достаточно ввести warlock в командной строке DOS.

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

WARLOCK.С        исходная программа игрового ядра.

SNDLIB.C              исходная программа звуковой системы. Соответствующие функции вы видели раньше, но для Warlock я создал более совершенный интерфейс и разместил его в этом файле.

SNDLIB.H              файл заголовков для SNDLIB.C.

GRAPHICS.С         окончательная графическая библиотека (почти идентичная GRAPHO.С).

GRAPHICS.H         файл заголовков для GRAPHICS.C.

DRAWG.ASM        эта функция изображает черное небо и серую поверхность земли, используя 32-битовые команды.

RENDER32.ASM   эта функция копирует изображение из дублирующего буфера в видеопамять. Она также использует 32-битовые команды.

SLIVER.ASM         эта функция изображает отдельный фрагмент текстуры изображения в двойном буфере. Это способ генерации трехмерного вида (набор вертикальных полосок). Я снова использовал 32-битовые команды, и таким образом вы получаете доступ к регистрам дополнительного сегмента.

После трансляции всех файлов они связываются вместе, используя warlock.с как главный модуль. Я делал вот как: сначала создал общую библиотеку, в которой объединил звуковую и графическую библиотеки, а также дополнительные функции на ассемблере. Затем я откомпилировал ее и скомпоновал с главной программой WARLOCK.С.

Учтите, что компиляция производится с использованием модели памяти MEDIUM. Также не забудьте использовать опцию /G2, позволяющую учитывать специфические особенности команд 286-го процессора. Все необходимое записано в стандартном ВАТ-файле, который я использовал для компиляции программы с помощью Microsoft C/C++ 7.00:

cl -AM -Zi -с -Fc -Gs -G2 %l.c

Эта строка переводится так: «компилировать для модели памяти MEDIUM, с использованием команд 286-го процессора, с отключенным контролем переполнения стека и генерировать листинг программы». Чтобы получить представление, как компонуется программа, взгляните на рисунок 19.2. На нем показана схема, по которой отдельные кусочки объединяются в единое целое.




Содержание  Назад  Вперед