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


Смещение мозаичных изображений - часть 3


2.       Рисование нескольких (полностью выведенных) «кирпичиков»;

3.       Рисование последнего (возможно, не полностью выведенного) «кирпичика» .

Также нам необходимо иметь в программе целочисленный счетчик, который будет указывать местоположение видимого экрана внутри виртуального изображения.

Программа из Листинга 17.6 (TILES.С) демонстрирует моделирование мозаичных слоев. Самые ближние слои состоят из нескольких «кирпичиков». Определение виртуального изображения сохранено в файле TILEMAP.DAT, который представляет собой обычный ASCII-файл и обрабатывается во время инициализации. Цифры в файле представляют собой закодированные имена PCX-файлов. Обратите внимание, что код 0 зарезервирован для «прозрачного кирпичика». Рисунок 17.3 показывает небольшой пример мозаичного изображения.

Важным отличием между этой программой и демонстрационной программой двойного параллакса в Листинге 17.3 является добавление функции DrawTile().

Эта подпрограмма изображает «кирпичик» в указанном месте экрана. Два аргумента offset и width определяют соответственно начальный столбец и ширину для вывода не полностью помещающихся на экране «кирпичиков».

Для частично выведенных кирпичиков:

§          offset  -первый столбец, в котором будет нарисован «кирпичик»;

§          width - некоторое значение меньше ширины «кирпичика».

Для полностью выведенных «кирпичиков»:

§          offset - 0;

§          width - определяет ширину «кирпичика».

Программа из Листинга 17.6 также использует курсорные клавиши для управления движением и клавишу Esc для выхода. В демонстрационной программе на переднем плане появляется стена дома, составленная из отдельных «кирпичиков», а за ней видны хорошо известная горная гряда и линия неба на самом дальнем плане. Выполняется эта программа немного медленнее из-за использования в ней функции вывода мозаичного изображения, но только на пару кадров в секунду.


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



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