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


Шаблонные мысли - часть 3


//указатель на системную переменную, содержащую

//значение таймера. Содержимое этой 32-битовой ячейки

//обновляется 18.2 раз в секунду

usigned int far *clock=(unsigned int far *)0x0000046C;

// Х- и Y-компоненты шаблонов траекторий, по которым будет

// двигаться "муха"

int patterns_x[3] [20]={1,1,1,1,1,2,2,-1,-2,-3,-1, 0,0,1,2,2,-2,-2,-1,0, 0,0,1,2,3,4,5,4,3,2,1,3,3,3,3, 2,1,-2,-2,-1, 0,-l,-2,-3,-3,-2,-2, 0,0,0,0,0,0,1,0,0,0,1,0,1};

int patterns_y[3] [20]={0,0,0,0,-1,-1,-1,-1,-1, 0,0,0,0,0,2,2,2,2,2,2, 1,1,1,1,1,1,2,2,2,2,2, 3,3,3,3,3,0,0,0,0, 1,1,1,2,2,-1,-1,-1,-2,-2, -1,-1,0,0,0,1,1,1,1,1};

/////////////////////////////////////////////

void Timer(int clicks)

{

// Эта функция использует значение таймера для формирования

// задержки. Необходимое время задержки задается в "тиках"

// интервалах в 1/18.2 сек. Переменная, содержащая 32-битовое

// текущее значение системного таймера, расположена

// по адресу 0000:0:46Ch

unsigned int now;

// получить текущее время

now = *clock;

// Ничего не делать до тех пор, пока значение таймера не

// увеличится на требуемое количество "тиков".

// Примечание: один "тик" соответствует примерно 55мс.

while(abs(*clock - now) < clicks) {}

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

// ОСНОВНАЯ ФУНКЦИЯ //////////////////////////////////////

void main(void)

{

int px=160,py=100,    // начальные координаты игрока

ex=0,ey=0;        // начальные координаты противника

int done=0,           // флаг окончания работы программы

doing_pattern=0,  // флаг выполнения команд шаблона

current_pattern, // номер выполняемого шаблона,

             // принимает значение в интервале 0-2

pattern_element; <// номер выполняемой команды шаблона

_setvideomode(_MRES256COLOR,) ;

printf("             The Fly - Q to Quit");

// главный игровой цикл

while(!done)

{

// очищаем точки

_setcolor(0) ;

_setpixel(px,py);

_setpixel(ex,ey) ;

// Перемещение игрока

if (kbhit())

{

// Определяем направление движения




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



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