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


«Прозрачные» пиксели - часть 5


Как правило, это увеличивает

// быстродействие на 100 процентов.

void AnimLoop()

{

while(KeyScan != ESC_PRESSED)    // пока не нажата клавиша ESC

(

switch(KeyScan)     // определяем, какая клавиша была нажата

{

case RIGHT_ARROW_PRESSED:      //нажата "стрелка вправо"

position--;                  // изменяем позицию

if(position < 0)             // останавливаем прокрутку,

//  если дошли до конца

{

position=0;

break;

} backgrpund —=1;      // прокручиваем фон влево на 2 пикселя

if(background < 1)        // дошли до конца?

background+=VIEW_WIDTH; // ...если да - возврат к началу

foreground-=2;            // прокручиваем верхний

// слой влево на 4 пикселя

if(foreground < 1)        // дошли до конца?

foreground+=VIEW_WIDTH; // ...если да - возврат к началу

break;

case LEFT_ARROW_PRESSED:      // нажата "стрелка влево"

position++;          // изменяем текущую позицию прокрутки

if(position > TOTAL_SCROLL) // останавливаем прокрутку,

// если дошли до конца

{

position=TOTAL_SCROLL;

break;

}

background+=l;     // прокручиваем фон вправо на 2 пикселя

if(background > VIEW_WIDTH-1) // дошли до конца?

background-=VIEW_WIDTH; // ...если да - возврат к началу

foreground+=2;            // прокручиваем верхний слой

// вправо на 4 пикселя

if(foreground > VIEW_WIDTH-1) // дошли до конца?

foreground-=VIEW_WIDTH; // ...если да - возврат к началу

break;

default:                   // игнорируем остальные клавиши

break;

}

DrawLayers();                // рисуем слои в буфере в        

// оперативной памяти

memcpy(VideoRam,MemBuf,MEMBLK); // копируем буфер в

// видеопамять

frames++;                   // увеличиваем счетчик кадров

) }

//эта функция осуществляет необходимую инициализацию

void Initialize()

{

position=0;

InitVideo();            // устанавливаем видеорежим 13h

InitKeyboard();         // устанавливаем наш обработчик

// прерывания клавиатуры

if(!InitBitmaps())      // загружаем битовые карты




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



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