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


Игра Tombstone - часть 5


image->buffer[count++] = data;

} // конец обработки несжатых данных

} // конец цикла while

// перейти в позицию, не доходя 768 байт от конца файла

fseek(fp,-768L,SEEK_END) ;

// загрузить

палигру

for (index=0; index<256; index++)

{

// красная

составляющая

image->palette[index].red = (getc(fp) >> 2);

// зеленая

составляющая

image->palette[index].green = (getc(fp) >> 2);

// синяя

составляющая

image->palette[index].blue = (getc(fp) >> 2) ;

} // конец

цикла for

fclose(fp);

// если установлен флаг enable_palette, установить новую палитру

if (enable_palette)

{

for (index=0; index<256; index++)

{

Set_Palette_Register(index,

(RGB_color_ptr)&image->palette[index]);

} // конец цикла for

 

} // конец установки палитры

} // конец

функции

 

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

void PCX_Show_Buffer (pcx_picture_ptr image)

{ // функция копирует буфер, содержащий изображение из PCX-файла,

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

_fmemcpy(char far *)video_buffer,

 (char far *) image->buffer,SCREEN_WIDTH*SCREEN__HEIGHT);

} // конец

функции

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

void Sprite_Init(sprite_ptr sprite, int x,int y, int ac, int as,int mc,int ms)

{

// функция инициализирует спрайт

int index;

sprite->x            = x;

sprite->y            = у;

sprite->x_old        = x;

sprite->y_old        = у;

sprite->width        = SPRITE_WIDTH;

sprite->height       = SPRITE_HEIGHT;

sprite->anim_clock   = ac;

sprite->anim_speed   = as;

sprite->motion_clock = me;

sprite->motion_speed = ms;

sprite->curr frame   = 0;

sprite->state        = SPRITE_DEAD;

sprite->num_frames   = 0;

sprite->background  = (char far *)malloc (SPRITE_WIDTH * SPRITE_HEIGHT+1);

// устанавливаем все указатели в значение NULL

for (index=0; index<MAX_SPRITE_FRAMES; index++) sprite->frames[index] = NULL;

} // конец

функции

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




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