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


Функциональное описание программы WarEdit - часть 4


#define POTIONS_2       (POTIONS_START+1)

#define POTIONS_3       (POTIONS_START+2)

#define POTIONS_4       (POTIONS_START+3)

#define FOODS_1         (FOODS_START+0) // Пока только 2

#define FOODS_2         (FOODS_START+1)

#define MONSTERS_1      (MONSTERS_START+0) // Пока только 2

#define MONSTERS_2      (MONSTERS_START+1)

#define GAME_START      255 // точка, из которой игрок

                       

// начинает свой путь

Как можно видеть из Листинга 15.1, для каждой текстуры или объекта игрового пространства выделен некоторый диапазон значений. К примеру, все стены будут кодироваться числами от 64 до 127. В данный момент существует только 64 стены, но я оставил в программе место еще для 64 стен. Такой же подход применен и для определения всех остальных игровых объектов, так что структуру данных можно улучшить без особого труда. Когда вы рисуете карту игрового поля, то в действительности заполняете базу данных. Она представляет собой длинный массив, по способу доступа напоминающий двухмерную матрицу. Когда массив построен и уровень закончен, мы должны как-то сохранить данные. Для этого предусмотрены кнопки LOAD и SAVE. При нажатии одной из них, появляется диалоговое окно, запрашивающее подтверждение команды. Если вы выбрали YES, с помощью стандартной функции fopen() открывается файл, после чего данные сохраняются в файле или загружаются из файла. Но предварительно нужно ввести имя файла, используя строчный редактор. Этот редактор мне пришлось сделать самостоятельно. Он очень прост и понимает только алфавитно-цифровые клавиши.

Примечание

Мне пришлось написать такой редактор самостоятельно, поскольку единственный способ ввода строки, предлагаемый языком Си - это функция scanf (). Однако использование этой функции чревато неприятностями: при наборе возможны ошибки, текст может выйти за границы диалогового окна и т. д. 

 

Давайте поговорим о диалоговом окне, о котором я только что упоминал. Оно представляет собой PCX-файл с двумя нарисованными кнопками.


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



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