📄 game.h
字号:
// Game.h: interface for the CGame class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GAME_H__18287D61_DB36_11D3_B12A_F67D0FBE8D25__INCLUDED_)
#define AFX_GAME_H__18287D61_DB36_11D3_B12A_F67D0FBE8D25__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <ddraw.h>
#include "Plane.h"
#include "Sprite.h"
#include "Input.h"
#include "Sound.h"
#define NUM_BITMAPS 15
#define NUM_EXPLODES 20
#define NUM_ENEMYS 6
enum GAMESTATE
{
GS_SPLASH,
GS_ACTIVE,
GS_WIN,
GS_OVER,
};
//##ModelId=3EBF9A47001F
class CGame
{
public:
//##ModelId=3EBF9A47018A
CGame();
//##ModelId=3EBF9A470189
virtual ~CGame();
//##ModelId=3EBF9A470187
BOOL Initialize( HINSTANCE hInst );
//##ModelId=3EBF9A470186
BOOL InitApplication();
//##ModelId=3EBF9A47017D
BOOL DDInit();
//##ModelId=3EBF9A47017C
void DDTerm();
//##ModelId=3EBF9A47017A
void ResetPlayer( CPlayer& player );
//##ModelId=3EBF9A470179
BOOL InitLevel();
//##ModelId=3EBF9A470178
BOOL InitGame();
//##ModelId=3EBF9A470177
BOOL ResetGame();
//##ModelId=3EBF9A470169
void CleanUpGame();
//##ModelId=3EBF9A47015C
void DDClear( RECT* prc, DWORD dwFillColor );
//##ModelId=3EBF9A47015B
void FlipScreen();
//##ModelId=3EBF9A47015A
void ProcessInput();
//##ModelId=3EBF9A470159
void UpdateFrame();
//##ModelId=3EBF9A470158
int Run();
//##ModelId=3EBF9A47014B
void Explode( CSprite& sprite, BOOL bExplode=FALSE );
//##ModelId=3EBF9A470149
void PlayerBeenHit( CPlayer& player );
//##ModelId=3EBF9A470148
BOOL BoreBonus();
//##ModelId=3EBF9A47013A
BOOL BoreEnemy();
//##ModelId=3EBF9A47012C
void EatBonus( CPlayer& player );
//##ModelId=3EBF9A470138
void EatBonus( CEnemy& enemy );
//##ModelId=3EBF9A47012B
void GameOver();
//##ModelId=3EBF9A47012A
BOOL LoadBitmaps();
//##ModelId=3EBF9A470129
void RestoreSurfaces();
//##ModelId=3EBF9A47011A
void OutputText( int x, int y, LPCTSTR string );
//##ModelId=3EBF9A470119
void DoSplash();
//##ModelId=3EBF9A47010B
void DrawWorld();
//##ModelId=3EBF9A4700FB
void BltNumber( int x, int y, int n );
//##ModelId=3EBF9A4700EA
LPDIRECTDRAWSURFACE DDLoadBitmap( LPCSTR szBitmap, int dx=0, int dy=0 );
//##ModelId=3EBF9A4700DA
LPDIRECTDRAWSURFACE DDCreateSurface( int width, int height );
//##ModelId=3EBF9A4700BB
LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM, LPARAM );
private:
//##ModelId=3EBF9A4700AC
HINSTANCE m_hInst;
//##ModelId=3EBF9A4700AB
HWND m_hWnd;
//##ModelId=3EBF9A47009C
BOOL m_bActive;
//##ModelId=3EBF9A47008D
BOOL m_bShowStats;
//##ModelId=3EBF9A47008C
BOOL m_bFullScreen;
//##ModelId=3EBF9A470082
BOOL m_bSingle;
//##ModelId=3EBF9A47007F
RECT m_rcWindow;
//##ModelId=3EBF9A470072
DWORD m_dwFillColor;
//##ModelId=3EBF9A47006F
LPDIRECTDRAW m_pDD;
//##ModelId=3EBF9A470067
LPDIRECTDRAWSURFACE m_pddsFrontBuffer;
//##ModelId=3EBF9A470062
LPDIRECTDRAWSURFACE m_pddsBackBuffer;
//##ModelId=3EBF9A47005D
LPDIRECTDRAWSURFACE m_pBmpList[NUM_BITMAPS];
//##ModelId=3EBF9A470055
CDirectInput m_DirectInput;
//##ModelId=3EBF9A470050
CDirectSound m_DirectSound;
//##ModelId=3EBF9A47004A
CPlane m_plane;
//##ModelId=3EBF9A470045
CPlayer m_player[2];
//##ModelId=3EBF9A470040
CEnemy m_enemy[NUM_ENEMYS];
//##ModelId=3EBF9A47003D
int m_nMaxEnemys;
//##ModelId=3EBF9A47003A
CExplode m_explode[NUM_EXPLODES];
//##ModelId=3EBF9A470035
CBonus m_bonus;
//##ModelId=3EBF9A470030
GAMESTATE m_gameState;
//##ModelId=3EBF9A470025
DWORD m_lastTime;
//##ModelId=3EBF9A470024
int m_nLevel;
//##ModelId=3EBF9A470023
int m_nEnemysLeft;
//##ModelId=3EBF9A470022
int m_nEnemys;
//##ModelId=3EBF9A470021
BOOL m_bEnemyLocked;
//##ModelId=3EBF9A470020
DWORD m_lockTime;
};
HRESULT DDCopyBitmap( LPDIRECTDRAWSURFACE, HBITMAP hbm, int x, int y, int dx, int dy);
HRESULT DDReLoadBitmap(LPDIRECTDRAWSURFACE, LPCSTR szBitmap);
HRESULT DDSetColorKey(LPDIRECTDRAWSURFACE, COLORREF);
DWORD DDColorMatch(LPDIRECTDRAWSURFACE, COLORREF);
#endif // !defined(AFX_GAME_H__18287D61_DB36_11D3_B12A_F67D0FBE8D25__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -