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


«Animotion» - часть 4


PCX_Grap_Bitmap((pcx_picture_ptr)&stick_cells,

(sprite_ptr)&object,7, 1,1);

PCX_Grap_Bitmap ( (pcx_picture_ptr) &stick_cells,

(sprite_ptr)&object,8, 2,1) ;

PCX_Grap_Bitmap((pcx_picture_ptr)&stick_cells,

(sprite_ptr) &object, 9, 3,1);

PCX_Grap_Bitmap((pcx_picture_ptr)&stick_cells,(sprite_ptr)&object,10,4,1);

PCX_Grap_Bitmap((pcx_picture_ptr)&stick_cells,

(sprite_ptr)&object,11,5,1);

// файл stickman.pcx больше не нужен

PCX_Delete((pcx_picture_ptr)&stick_cells);

// настраиваем параметры человечка

object.x        = 10;

object.у        = 120;

object.curr_frame = 0;

// сохраняем

фон

Behind_Sprite((sprite_ptr)&object);

 

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

while(!done)

{

// стираем спрайт

Erase_Sprite((sprite_ptr)&object) ;

// увеличиваем номер кадра на единицу

if (++object.curr_frame > 11) object.curr_fcame = 0;

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

// или

таблицу выбора

if (vel_state==VEL_CONST)

{

object.x+=4;

}

// конец if

else

/         {

// используем номер кадра для определения величины

// перемещения по таблице выбора

object.x += object_vel[object.curr_frame];

} // конец else

}

Вы наверняка обратили внимание на горы и местность за окнами, которые перемещаются при ваших поворотах. Фактически, этот пейзаж есть не что иное, как плоское изображение, прокручиваемое как фон. Эти изображения, чтобы они выглядели трехмерными, прорисовываются специальным образом, но, тем не менее, в основе их перемещения лежит все та же прокрутка двухмерного изображения.

Персональные компьютеры могут иметь специальное аппаратное обеспечение, облегчающее прокрутку. Некоторые карты VGA имеют до мегабайта оперативной памяти, что дает возможность рисовать мир вашей игры прямо в видеобуфере, поручая производить прокрутку самой видеокарте. Однако существует две проблемы:

 Во-первых, если мы будем полагаться на определенную аппаратуру, наши программы станут аппаратнозависимыми и не будут работать на картах VGA с меньшей памятью;




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