?? game.h
字號:
/*==============================================================================
文件: Game.h
說明:游戲?qū)崿F(xiàn)部分
時間:2003-12-06
編寫:oshj || oshj@21cn.com
環(huán)境:EVC3.0 or Win2000 Pro/SP4/1024*768分辨率
特別說明:
==============================================================================*/
////////////////////////////////////////////////////////////////////////////////
//------------------------------------------------------------------------------
//游戲設(shè)置
struct CGameSet
{
int iUserTotal; //用戶總數(shù)
int iUserIndex; //上次活動用戶INDEX
TCHAR User[20][50]; //存儲用戶名稱,總共20個,單個最大長度50
TCHAR UserCur[50]; //當(dāng)前游戲用戶名
int iLevelTotal; //級別總數(shù)
int iLevelIndex; //上次活動級別
TCHAR Level[4][10]; //各級別內(nèi)容,4個,最大長度10
TCHAR Key[7][10]; //控制鍵值,最后一個為存儲雷數(shù)量
int iAutoFire; //是否自動開火
};
//------------------------------------------------------------------------------
class CGame
{
public:
HDC g_hBufDC; //緩存層
HDC g_hMapDC; //地圖層
HDC g_hPlaDC; //我機(jī)
HDC g_hBalDC[2]; //我機(jī)子彈 //兩排子彈速度可能跟不上
HDC g_hBomDC; //我機(jī)炸彈
HDC g_hBusDC; //我機(jī)爆炸火焰
HDC g_hFoePlaDC[2]; //敵機(jī),兩種造型
HDC g_hFoeBalDC[2]; //敵機(jī)子彈
HDC g_hFoeBusDC; //敵機(jī)爆炸火焰
HDC g_hFoeBossDC; //敵機(jī)BOSS
HDC g_hFoeBossBalDC;//敵機(jī)BOSS子彈
HDC g_hFoeBossBusDC;//敵機(jī)BOSS爆炸火焰
HDC g_hScoreDC; //后臺信息
//
POINT pos; //我機(jī)位置
int movespeed; //移動速度
public:
//轉(zhuǎn)換鍵盤設(shè)置值
void LoadAscii(TCHAR &sr,TCHAR *s);
//開火
void Fire();
//加載配置信息
void LoadFromIni();
//檢測我機(jī)是否被敵機(jī)BOSS擊中
void CheckBoss();
//釋放游戲資源
void CGameFree();
//開始
void StartGame();
//播放片頭
void PlayCopyright();
//初始化游戲
void InitGame();
//重置所有游戲參數(shù)
void ResetAll();
//過關(guān)
void PassLevel();
//平行方向打開屏幕效果
void LOpen();
//平行方向關(guān)閉屏幕效果
void LClose();
//垂直方向打開屏幕效果
void VOpen();
//垂直方向關(guān)閉屏幕效果
void VClose();
//放雷時屏幕效果
void FlashScreen();
//游戲檢測
void Check();
//以下Draw...均為游戲貼圖部分
//背景文字
void DrawScore();
//敵機(jī)BOSS
void DrawFoeBoss();
//BOSS子彈
void DrawFoeBossBal();
//爆炸效果
void DrawBlast();
//敵機(jī)
void DrawFoe();
//我機(jī)子彈
void DrawBall();
//將緩沖內(nèi)容貼到屏幕
void DrawFlip();
//我機(jī)
void DrawPlane();
//地圖
void DrawMap();
//場景更換
void UpdateFrame();
//獲得一個矩形區(qū)
void GetRect(RECT* rect, long left, long top, long width, long height);
//判斷是否在矩形區(qū)域內(nèi)
BOOL IsOutRect(POINT p);
//構(gòu)造
CGame();
//析構(gòu)
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; //游戲狀態(tài)
//MIDI播放和關(guān)閉
TCHAR m_MidiOpen[250]; //PC下用到的MIDI播放和關(guān)閉
TCHAR m_MidiClose[250];
private:
int m_iLevel; //第幾關(guān)
int m_iFoeDead; //敵機(jī)損失數(shù)量(過關(guān)BOSS出現(xiàn))
int m_iFoeTotalDead; //敵機(jī)損失總數(shù)
int m_iReMain; //我機(jī)剩余數(shù)量
int m_iTotalPlane; //我機(jī)損失數(shù)量總和
int m_iBomb; //雷(炸彈)
int m_iBallNum; //我機(jī)當(dāng)前子彈記錄
BOOL m_bNewReset; //我機(jī)是否重新初始化
BOOL m_bCanControl; //我機(jī)是否能控制
BOOL m_bSeeBoss; //BOSS是否出現(xiàn)
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子彈總數(shù)
int m_iBossBallNum; //BOSS當(dāng)前子彈記錄
int m_iBossBalClr; //BOSS子彈是否顯示完
BOOL m_bBossBalClr; //BOSS子彈是否顯示完
POINT m_pFoeBossBusPos; //
};
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -