📄 game.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 + -