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

📄 game.h

📁 借鉴他人的成果(包括图片等资源和一些算法)进行了射击游戏内容的修改和开发环境的转换。
💻 H
字号:
// Game.h: interface for the CGame class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_GAME_H__BE101375_F359_43AA_89AF_9AB110B30EAD__INCLUDED_)
#define AFX_GAME_H__BE101375_F359_43AA_89AF_9AB110B30EAD__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////
#include <afxmt.h>
////////////////////////////
#define DEVNUMS	20
#define EMYNUMS 20
#define PASSBOSS 100
struct DEVICE
{
	HDC hDevDC;
	CPoint CenterPos;
	RECT DevRect[DEVNUMS];
	int MoveSpeed[DEVNUMS];
	int MoveWay[DEVNUMS];
	BYTE bDeadFlag[DEVNUMS];
};
////////////////////////////
class CGame : public CObject  
{
public:
	CGame(CWnd* pWnd = NULL);
	virtual ~CGame();
protected:
	CWnd* pGWnd;
	//切换画面线程
	static UINT PlayThread(LPVOID lpVoid);	
	CWinThread* m_pThread;
	CEvent m_ExistEvent;//终止线程事件
public:
	BOOL InitialGame();

	//垂直方向开启屏幕效果
	void VOpen();

	//垂直方向关闭屏幕效果
	void VClose();

	//将缓冲内容贴到屏幕
	void DrawFlip();

	//场景更换
	void UpdateFrame();

	//画地图
	void DrawMap();

	//画我机
	void DrawPlane();

	//画我机子弹
	void DrawBullet();

	//开火
	void Fire();

	//画敌机BOSS
	void DrawEmyBoss();

	//画BOSS子弹
	void DrawEmyBossBal();

	//画敌机
	void DrawEmyPlane();

	//游戏检测
	void Check();

	//检测我机是否被敌机BOSS击中
	void CheckBoss();

	//画爆炸火焰效果
	void DrawBlast();

	//填充一个RECT结构
	void GetRect(RECT* rect, long left, long top, long width, long height);

	//控制我方飞机方向
	void ControlPlanePos(int Direction);

	//是否在区域内
	BOOL IsOutRect(POINT p);
	
	//得分
	void DrawScore();

	//结束画面
	void DrawGameOver();

	//重新设置参数;
	void RestAll();
	
	//过关
	void PassLevel();

	//我机放雷
	void FlashScreen();
public:		
	
	int nPlaneLife;//我机生命:4
	int m_iLevel;//关数:共5关
	DWORD m_EnterNextLevelTime;
	
	HDC	g_hBufDC;//缓存层
	HDC	g_hMapDC;//地图层	
	HDC g_hLifeDC;//生命数目提示
	HDC g_hGameOverDC;//结束界面

	//我方装备
	DEVICE dPlane;
	DEVICE dBulletL;
	DEVICE dBulletR;
	DEVICE dBom;
	HDC	g_hBusDC;//我机爆炸火焰
	HDC g_hBomDC;
	int	m_iBallNum;	//我机当前子弹记录	
	POINT BusPos[DEVNUMS];//我机爆炸火焰位置
	int BlastType;
	int m_iBomb;

	BOOL m_bNewReset;	//我机是否重新初始化
	BOOL m_bCanControl;	//我机是否能控制
	BOOL m_bResetGame;//重新开始游戏

	//敌方装备
	DEVICE dEmyPlane;
	HDC	g_EmyPlane2DC;//敌机其它类型
	HDC g_EmyBullet1;//子弹1
	HDC g_EmyBullet2;//子弹2
	DEVICE dEmyBullet;
	DEVICE dEmyBom;
	DEVICE dEmyBlast;//敌机爆炸火焰

	int EmyType[EMYNUMS];//敌人类型
	int EmyBlastType[EMYNUMS];//敌机火焰类型

	int KillEmyNums;//击毁敌机数目
	int TotalKillNums;//
	int m_iEmyNums;
	DWORD dTotalScore;

	BOOL m_bSeeBoss;
	int m_iFoeBossBlood;
	int m_BossBloodCheck;
	DEVICE dEmyBoss;
	DEVICE dEmyBossBal;
	HDC g_EmyBossBlast;
	int m_iBossTotalBalNum;
	BOOL m_bBossBalClr;//BOSS子弹是否显示完
	int	m_iBossBalClr;//BOSS子弹是否显示完
	int EmyBossBlastType;
	POINT EmyBossBusPos;

	int MoveSpeed;
};

#endif // !defined(AFX_GAME_H__BE101375_F359_43AA_89AF_9AB110B30EAD__INCLUDED_)

⌨️ 快捷键说明

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