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

📄 game.h

📁 小时候玩的经典游戏-坦克大战的源码
💻 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 + -