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

📄 game.h

📁 涉及的代码是针对WINCE3.0(PPC2002)平台
💻 H
字号:
/*==============================================================================
文件: Game.h
说明:游戏实现部分 
时间:2003-12-06
编写:oshj || oshj@21cn.com
环境:EVC3.0 or Win2000 Pro/SP4/1024*768分辨率
特别说明:
==============================================================================*/
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
//游戏设置
struct CGameSet
{
	int		iUserTotal;		//用户总数
	int		iUserIndex;		//上次活动用户INDEX
	TCHAR	User[20][50];	//存储用户名称,总共20个,单个最大长度50
	TCHAR	UserCur[50];	//当前游戏用户名
	int		iLevelTotal;	//级别总数
	int		iLevelIndex;	//上次活动级别
	TCHAR	Level[4][10];	//各级别内容,4个,最大长度10
	TCHAR   Key[7][10];		//控制键值,最后一个为存储雷数量
	int		iAutoFire;		//是否自动开火

};
//------------------------------------------------------------------------------
class CGame  
{
public:
	HDC			g_hBufDC;		//缓存层
	HDC			g_hMapDC;		//地图层
	HDC			g_hPlaDC;		//我机
	HDC			g_hBalDC[2];	//我机子弹 //两排子弹速度可能跟不上
	HDC			g_hBomDC;		//我机炸弹
	HDC			g_hBusDC;		//我机爆炸火焰
	HDC			g_hFoePlaDC[2];	//敌机,两种造型
	HDC			g_hFoeBalDC[2];	//敌机子弹
	HDC			g_hFoeBusDC;	//敌机爆炸火焰
	HDC			g_hFoeBossDC;	//敌机BOSS
	HDC			g_hFoeBossBalDC;//敌机BOSS子弹 
	HDC			g_hFoeBossBusDC;//敌机BOSS爆炸火焰

	HDC			g_hScoreDC;		//后台信息
	
	//
	POINT	pos;				//我机位置	
	int		movespeed;			//移动速度
	
public:
	//转换键盘设置值
	void LoadAscii(TCHAR &sr,TCHAR *s);
	//开火
	void Fire();
	//加载配置信息
	void LoadFromIni();
	//检测我机是否被敌机BOSS击中
	void CheckBoss();
	//释放游戏资源
	void CGameFree();
	//开始
	void StartGame();
	//播放片头
	void PlayCopyright();
	//初始化游戏
	void InitGame();
	//重置所有游戏参数
	void ResetAll();
	//过关
	void PassLevel();
	//平行方向打开屏幕效果
	void LOpen();
	//平行方向关闭屏幕效果
	void LClose();
	//垂直方向打开屏幕效果
	void VOpen();
	//垂直方向关闭屏幕效果
	void VClose();
	//放雷时屏幕效果
	void FlashScreen();
	//游戏检测
	void Check();
	//以下Draw...均为游戏贴图部分
	//背景文字
	void DrawScore();
	//敌机BOSS
	void DrawFoeBoss();
	//BOSS子弹
	void DrawFoeBossBal();
	//爆炸效果
	void DrawBlast();
	//敌机
	void DrawFoe();
	//我机子弹
	void DrawBall();
	//将缓冲内容贴到屏幕
	void DrawFlip();
	//我机
	void DrawPlane();
	//地图
	void DrawMap();
	//场景更换
	void UpdateFrame();
	//获得一个矩形区
	void GetRect(RECT* rect, long left, long top, long width, long height);
	//判断是否在矩形区域内
	BOOL IsOutRect(POINT p);
	//构造
	CGame();
	//析构
	virtual ~CGame();

protected:	
	//此部分从配置文件中读得
	BOOL	m_iniSuperUser;		//是否超级用户=oshj?OSHJ?haha
	BOOL	m_iniAutoFire;		//是否自动开火
	int		m_iniLevel;			//选择的级别
	int		m_iniBombSel;		//读出的ini信息
	TCHAR	m_iniUp;
	TCHAR	m_iniDown;
	TCHAR	m_iniLeft;
	TCHAR	m_iniRight;
	TCHAR	m_iniFire;
	TCHAR	m_iniThunder;
	
	//
	int		m_iGameStatus;		//游戏状态

	//MIDI播放和关闭
	TCHAR	m_MidiOpen[250];	//PC下用到的MIDI播放和关闭
	TCHAR	m_MidiClose[250];

private:
	int		m_iLevel;			//第几关
	int		m_iFoeDead;			//敌机损失数量(过关BOSS出现)
	int		m_iFoeTotalDead;	//敌机损失总数
	int		m_iReMain;			//我机剩余数量
	int		m_iTotalPlane;		//我机损失数量总和
	int		m_iBomb;			//雷(炸弹)

	int		m_iBallNum;			//我机当前子弹记录

	BOOL	m_bNewReset;		//我机是否重新初始化
	BOOL	m_bCanControl;		//我机是否能控制
	BOOL	m_bSeeBoss;			//BOSS是否出现
	BOOL	m_bMoveBossRight;	//BOSS是否往右移动
	BOOL	m_bResetGame;		//是否game over之后重新开始

	POINT	m_pFoeBossPos;		//BOSS位置
	int		m_iFoeBossSpeed;	//BOSS速度
	int		m_iFoeBossType;		//是BOSS还是BOSS放的子弹
	int		m_iFoeBossBlood;	//BOSS血

	POINT * m_pFoeBossBalPos;	//BOSS子弹位置
	int	  * m_iFoeBossBalWay;	//BOSS子弹方向
	int	  * m_iFoeBossBalSpeed;	//BOSS子弹速度

	int		m_iBossTotalBalNum;	//BOSS子弹总数
	int		m_iBossBallNum;		//BOSS当前子弹记录
	int		m_iBossBalClr;		//BOSS子弹是否显示完
	BOOL	m_bBossBalClr;		//BOSS子弹是否显示完

	POINT	m_pFoeBossBusPos;	//


};

⌨️ 快捷键说明

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