⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 game.h

📁 学游戏不错的实例教程
💻 H
字号:
#include "常数定义.h"

//定义结构----------------------------------------------------------------------
typedef struct 
 {	short int x;
	short int y;
 } PATHN;//搜索整理路径
typedef struct 
 {	short int qi;		//动作起点
	short int bc;		//动作步数
 } JCDZ;	//人或兽的动作结构
typedef struct
{	short int jisu;		//序号
	short int xix,xiy;	//角色座标
	short int x0,y0;	//目标位置
	short int w,h;		//对象尺寸
	short int lb;		//类别:  [0人1兽2景]short int
	short int p;		//计数
	//以下人、动物使用
	short int m0,m1;	//位置初值、终值
	short int zs;		//动作:人[0站1走2刺3劈4倒]
						//动作:兽[0站1走2跑3斗4倒5尸]
	short int js;		//角色:人[0男1女]
						//角色:兽[0豹1狼2鹿3马4雀5羊6猪]
	short int fw;		//方位:	 [0南1西南2西3西北4北5东北6东7东南]
	short int zd;		//当前状态[0,1打斗]
	//以下搜索使用
	PATHN	  ph[250];	//搜索的路径
	short int pk;		//路径长
	short int fid;		//路径计数
	short int fx,fy;	//保留目标点
} MAN;		//对象结构
//定义类-------------------------------------------------------------------------
class game 
{public: game();	//构造函数
 virtual~game();	//析构函数
 //A、基本游戏功能-------------------------------
 //变量定义
 public://公有,外部可调用
 MAN		man[SU_LIANG];	//定义对象变量,数量为SU_LIANG
 HDC		MemDC;			//对象设备句柄
 HBITMAP	OldMak;
 HDC		hScrDC;			//屏幕设备句柄
 HBITMAP	bitmap;			//地图位图内存

 HBITMAP	hBMP0;
 HBITMAP	hBMP1;
 HDC		hDC0;
 HDC		hDC1;

 CString	dir;			//数据路径
 short int 	rs;				//当前对象数
 short int 	scrx,scry;		//地图移动量
 CString	mapbak;			//地图块名
 int		w,h;			//对象图片宽、高
 char appdir[256];			//当前目录
 private://私有,类内部使用
 short int 	sys;			//当前运行系统
  BLENDFUNCTION rBlend;			//半透明
 //函数定义
 public://公有,外部可调用。----------------------------------------
 BOOL init();						//初始化
 void exit();						//退出
 void Memcpy0(unsigned char *mu,unsigned char *yu,int z);
 void loadmap(CString name);		//调入地图
 BOOL loadbmp(CString cc);			//调BMP图片[2章]
 BOOL getpic(CString cc,int p,int a);//调图片DX
 void Alphasetobj (int q,int a);	//对象显示
 void Alpha(int x,int y);
 void setman (int q);				//设置活动对象初值
 void getobjwh(int q);				//取对象的尺寸
 void sort();						//排序(冒泡法)
 void TransparentBlt2(HDC hdc0,		//目标DC
	int nX0,int nY0,int nW0,int nH0,//目标左坐标,目标宽高宽
	HDC hdc1,						//源DC
	int nX1,int nY1,int nW1,int nH1,//源起点坐标,源宽高宽
	UINT Tcol);						//透明色,COLORREF类型
 private://私有,类内部使用
 BOOL inscreer(int i);				//在显示区?
 int  getsys();						//识别系统
 void bianfw (int q);				//方位转换
 void manmove(int i);				//活动对象的移动
 //B、扩展游戏功能[压缩资源包使用]------------
 //变量定义
 public://公有,外部可调用
 short int 	mann;				//主角下标
 short int 	mans;				//显示区对象数
 short int 	find_p;				//无搜索0有搜索1
 short int 	SCRP0;				//实际地图倍数	
 CFile		sfile,rfile,jfile;	//压缩资源包的文件指针
 BYTE		*stmp,*rtmp,*jtmp;	//压缩的内存变量
 int		sbufadd[SBUF];		//兽的资源指针
 short int	sbufx  [SBUF];		//兽的偏移量x
 short int	sbufy  [SBUF];		//兽的偏移量y
 int		rbufadd[RBUF];		//人的资源指针
 short int	rbufx  [RBUF];		//人的偏移量x
 short int	rbufy  [RBUF];		//人的偏移量y
 int		jbufadd[JBUF];		//景的资源指针
 //C、编辑功能的变量
 short int 	edi;				//编辑标志
//以下是DirectX变量、函数定义////////////////////////////////
 public://公有,外部可调用
 LPDIRECTDRAWSURFACE DXSBack1;	//主缓存页面1
 LPDIRECTDRAWSURFACE DXSBack0;	//背景地图缓存页面0
 LPDIRECTDRAWSURFACE DXSBack00;	//地图移动缓存页面0
 void FreeDDraw(void );			//释放所有的DirectDraw对象
 void Bk1ToPr(HDC scrhdc,CRect lpRect);//后页1到前页
 RECT rect;
 private://私有,类内部使用
 DDSURFACEDESC		 ddsd; //页面描述
 HRESULT			 ddrval;
 LPDIRECTDRAW		 DXW;		// DXDraw对象
 DDCOLORKEY			 col;		//透明关键色
 LPDIRECTDRAWSURFACE DXSPrimary;// DXDraw主页面
 LPDIRECTDRAWSURFACE DXSgonh;	//对象缓存页面
 BOOL InitDDraw(void);			//初始化DirectDraw环境
 void Surface(int w,int h);		//定义缓存页面的大小

/////////////////////////////////////////////////////////////////////////////
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -