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


Повороты объектов - часть 4


//и растрового буфера спрайта

offset     += SCREEN_WIDTH;

work_offset = sprite_width*(int)(y_scale_index) ;

} // конец цикла по Y

} // конец Scale Sprite ////////////////////////////////////////////////////////////

void Clear_Double_Buffer(void)

{ // эта функция очищает дублирующий буфер

// несколько грубо, зато работает

_fmemset(double_buffer, 0, SCREEN_WIDTH * SCREEN_HEIGHT + 1);

} // конец Clear_Double_Buffer

// ОСНОВНАЯ ПРОГРАММА ///////////////////////////////////////

void main(void)

{

int index,

done=0,dx=5,dy=4,ds=4;

float scale=5;

// установка видеорежима 320х200х256

Set_Mode(VGA256) ;

// установка размера спрайта

sprite_width

= sprite_height = 47;

// инициализация файла PCX, который содержит

// мультипликационные кадры

PCX_Init((pcx_picture_ptr)&ast_cells) ;

// загрузка файла PCX, который содержит мультипликационные кадры

PCX_Load("asteroid.рсх", (pcx_picture_ptr)&ast_cells,1) ;

// резервируем память под дублирующий буфер

Init_Double_Buffer() ;

Sprite_Init((sprite_ptr)&object,0,0,0,0,0,0) ;

// загрузка кадров вращающегося астероида

PCX_Grap_Bitmap((pcx_picture_ptr)&ast_cells,

(sprite_ptr)&object,0,0,0);

PCX_Grap_Bitmap ((pcx_picture_ptr) &ast_cells,

(sprite_ptr)&object,1,1,0} ;

PCX_Grap_Bitmap((pcx_picture_ptr)&ast_cells,

(sprite_ptr)&object,2,2,0) ;

PCX_Grap_Bitmap((pcx_picture_ptr)&ast_cells,

(sprite_ptr)&object,3,3,0) ;

PCX_Grap_Bitmap ((pcx_picture_ptr) &ast_cells,

(sprite_ptr)&object,4,4,0);

PCX_Grap_Bitmap((pcx_picture_ptr)&ast_cells,

(sprite_ptr)&object,5,5,0) ;

PCX_Grap_Bitmap((pcx_picture_ptr)&ast_cells, (sprite_ptr)&object,6,0,1);

PCX_Grap_Bitmap({pcx_picture_ptr)&ast_cells, (sprite_ptr)&object,1,1,1) ;

// позиционирование объекта в центре экрана

object.curr_frame =0;

object.x          = 160-(sprite width>>1);

object.у          = 100-(sprite_height>>1) ;

// очистка

дублирующего буфера

Clear_Double_Buffer();




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