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

📄 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,
};


class CGame  
{
public:
	CGame();
	virtual ~CGame();

	BOOL	Initialize( HINSTANCE hInst );
	BOOL	InitApplication();
	BOOL	DDInit();
	void	DDTerm();
	void	ResetPlayer( CPlayer& player );
	BOOL	InitLevel();
	BOOL	InitGame();
	BOOL	ResetGame();
	void	CleanUpGame();
	void	DDClear( RECT* prc, DWORD dwFillColor );
	void	FlipScreen();
	void	ProcessInput();
	void	UpdateFrame();
	int		Run();
	void	Explode( CSprite& sprite, BOOL bExplode=FALSE );
	void	PlayerBeenHit( CPlayer& player );
	BOOL	BoreBonus();
	BOOL	BoreEnemy();
	void	EatBonus( CPlayer& player );
	void	EatBonus( CEnemy& enemy );	
	void	GameOver();
	BOOL	LoadBitmaps();
	void	RestoreSurfaces();
	void	OutputText( int x, int y, LPCTSTR string );

	void	DoSplash();
	void	DrawWorld();
	void	BltNumber( int x, int y, int n );

	LPDIRECTDRAWSURFACE DDLoadBitmap( LPCSTR szBitmap, int dx=0, int dy=0 );
	LPDIRECTDRAWSURFACE DDCreateSurface( int width, int height );
	LRESULT MsgProc( HWND hWnd, UINT uMsg, WPARAM, LPARAM );

private:
	HINSTANCE	m_hInst;
	HWND		m_hWnd;
	BOOL		m_bActive;
	BOOL		m_bShowStats;
	BOOL		m_bFullScreen;
	BOOL		m_bSingle;
	RECT		m_rcWindow;
	DWORD		m_dwFillColor;

	LPDIRECTDRAW			m_pDD;
	LPDIRECTDRAWSURFACE		m_pddsFrontBuffer;
	LPDIRECTDRAWSURFACE		m_pddsBackBuffer;
	LPDIRECTDRAWSURFACE		m_pBmpList[NUM_BITMAPS];

	CDirectInput	m_DirectInput;
	CDirectSound	m_DirectSound;

	CPlane		m_plane;
	CPlayer		m_player[2];
	CEnemy		m_enemy[NUM_ENEMYS];
	int			m_nMaxEnemys;
	CExplode	m_explode[NUM_EXPLODES];
	CBonus		m_bonus;

	GAMESTATE	m_gameState;
	DWORD		m_lastTime;
	int			m_nLevel;
	int			m_nEnemysLeft;
	int			m_nEnemys;
	BOOL		m_bEnemyLocked;
	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 + -