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


Состояния бытия - часть 2


#include <bios.h>

#include <stdio.h>

#include <math.h>

#include <conio.h>

#include <graph.h>

// определения /////////////////////////////////////////////

#define ANT_NORTH 0

#define ANT_EAST 1 #define ANT_SOUTH 2

#define ANT_WEST 3 #define NUM_ANTS 50

// структуры ////////////////////////////

// структура муравья

typedef struct ant_typ

{

int x,y;              // позиция муравья

int state;            // состояние муравья

unsigned char color; // цвет муравья: красный или зеленый

unsigned back_color; // фон

под муравьем

} ant, *ant_ptr;

// ГЛОБАЛЬНЫЕ

ПЕРЕМЕННЫЕ

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

unsigned char far *video_buffer: = (char far *)0xA0000000L;

// указатель

на видеобуфер

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

// указатель на внутренний таймер

// наши маленькие муравьи

ant ants[NUM_ANTS];      

// ФУНКЦИИ /////////////////////////////////////////////////

void Timer(int clicks)

{

// эта функция использует внутренний таймер с частотой 18.2 "тик"/с.

//32-битовое значение этого таймера находится по адресу 0000:046Ch

unsigned int now;

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

now = *clock;

//Ожидаем до истечения указанного периода времени.

//Заметьте; что каждый,"тик" имеет длительность примерно в 55мс.

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

) // конец Timer

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

void Plot_Pixel_Fast(int x,int y,unsigned char color)

{

// эта функция рисует точку заданного цвета несколько быстрее чем

// обычно, за счет применения операции сдвига вместо операции

// умножения

// используется тот факт, что 320*у = 256*у + б4*у = у<<8 + у<<6

video_buffer[ ( (у<<8) + (у<<6) ) + х] = color;

} // конец Plot_Pixel_Fast ////////////////////////////////////////////////////////////

unsigned char Read_Pixel_Fast(int x,int у)

{

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

return (video_buffer [((у<<8) + (у<<6) ) + х]);




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



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