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


Смещение мозаичных изображений - часть 4


Листинг 17.5 содержит файл заголовка для программы Построения мозаичного изображения, представленной в Листинге 17.6. В заголовке определены константы и прототипы функций для демонстрационной Программы.

Листинг 17.5. Заголовок мозаичного смещения (TILES.Н).

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

// прокрутки мозаичных изображений

#define NUM_TILES     17      // количество файлов,

// содержащих "кирпичики"

#define TILE_WIDTH    16      //ширина "кирпичиков"

#define TILE_HEIGHT   16      // высота "кирпичиков"

#define TILE_COLS     40      //ширина мозаичного изображения

#define TILE_ROWS      6      // высота мозаичного изображения

#define TILES_TOTAL   (TILE_COLS*TILE_ROWS)

#define TILES_PER_ROW (VIEW_WIDTH/TILE_WIDTH)

#define shift 4

ftifdef _cplusplus extern "C"

{

#endif

void ReadTiles(void);

void FreeTiles(void);

void ReadTileMap(char *);

void DrawTile(char *,int,int,int,int);

void DrawTiles(int,int);

#ifdef __cplusplus

}

#endif

Поскольку программа из Листинга 17.6 практически повторяет 17.3, она приводится без комментариев.

Листинг 17.6. Демонстрационная программа мозаичного смещающегося слоя (TILES.C).

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

#include <dos.h>

#include "paral.h"

#include "tiles.h"

char *MemBuf,

*BackGroundBmp,

*ForeGroundBnip,

*VideoRam;

PcxFile pcx;

int volatile KeyScan;

int frames=0,

PrevMode;

int background,

foreground, position;

char *tiles[NUM_TILES+l];

int tilemap[TILES_TOTAL] ;

void interrupt (*OldInt9)(void);

//        

//

int ReadPcxFile(char *filename,PcxFile *pcx)

{

long i;

int mode=NORMAL,nbytes;

char abyte,*p;

FILE *f;

f=fopen(filename,"rb");

if(f==NULL)

return PCX_NOFILE;

fread(&pcx->hdr,sizeof(PcxHeader),l,f);

pcx->width=1+pcx->hdr.xmax-pcx->hdr.xmin;

pcx->height=1+pcx->hdr.ymax-pcx->hdr.ymin;




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



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