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