www.pudn.com > GameEngine_src.rar > CGameManager.h


// CGameManager.h: interface for the CGameManager class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#ifndef CGameManager_h 
#define CGameManager_h 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
 
 
#include "CAliveSprite.h" 
#include "CProgressBar.h" 
#include "CDynamicArray.h" 
#include  
#include  
 
using std::string; 
 
//游戏的状态 
enum GAME_STATE 
{ 
	GS_QUIT_GAME	= 1,			//退出游戏 
	GS_MAIN_MENU	= 2,			//主菜单 
	GS_NEW_HERO		= 3,			//新建人物 
	GS_LOAD_HERO	= 4,			//载入人物 
	GS_AUTHOR		= 5,			//作者信息 
	GS_LOADING_LVL	= 6,			//载入关卡时,按要载入的EPG列表载入EPG 
	GS_QUIT_LVL		= 7,			//退出关卡时,释放所有关卡资源,并载入地图,获取要载入的EPG列表 
	GS_PROCESS_LVL	= 8,			//关卡正在进行时 
	GS_GAME_MENU	= 9,			//游戏菜单 
	GS_GAME_HELP	= 10,			//游戏帮助 
}; 
 
 
 
////////////////////////////////////////////////////////////////////// 
//游戏管理类,负责处理用户的操作,管理总的逻辑 
////////////////////////////////////////////////////////////////////// 
class CGameManager   
{ 
public: 
	CGameManager(); 
	~CGameManager(); 
 
	bool Init(); 
	void Free(); 
 
	void HandleMouseMsg(); 
	void HandleKeyMsg(); 
 
	void OnGameLoop(); 
 
	GAME_STATE	GetGameState() { return m_GameState; } 
	void SetGameState( GAME_STATE gs ) { m_GameState = gs; } 
 
	void SetCurSelSprite( CBaseSprite *sprite ); 
 
	void GotoMap( const char *mapName, int indexPoint ); 
private: 
	void HeroMelee(); 
	void HeroSpell(); 
	void OnMouseRelease(); 
	void ReadyToLoadLvl(); 
 
private: 
	CBaseSprite *m_CurSelSprite;			//当前被指针指向的精灵 
	bool		m_bLocked;					//鼠标是否锁定状态 
	HICON		m_hPointCursor;				//正常状态下鼠标指针 
	HICON		m_hFightCursor;				//战斗状态下鼠标指针 
	HICON		m_hPickCursor;				//拾取状态下鼠标指针 
 
	GAME_STATE	m_GameState;				//游戏的状态 
	int			m_LoadStep;					//载入进行步骤 
 
	int				m_AllToLoad;			//要载入的总数量 
	int				m_NumLoaded; 
	int				m_StepLoad;			//已载入的数量	 
	CProgressBar	m_LoadingBar;		//载入时的进度条 
	POINT			m_LBRenderPoint;	//进度条的绘制位置 
 
	union  
	{ 
		struct  
		{ 
			PSURFACE	m_MainMenuSurface;		//主菜单页面 
			PSURFACE	m_CurSelSurface;		//当前选择页面 
			PSURFACE	m_NewHeroSurface;		//新建人物页面 
			PSURFACE	m_LoadHeroSurface;		//载入游戏页面 
			PSURFACE	m_AuthorSurface;		//作者信息页面 
			PSURFACE	m_GameMenuSurface;		//游戏菜单页面 
			PSURFACE	m_GameHelpSurface;		//游戏帮助页面 
			PSURFACE	m_HeroNameSurface;		//英雄名字页面 
			PSURFACE	m_HeroClassSurface;		//英雄职业页面 
		}; 
		PSURFACE m_TempSurface[9]; 
	}; 
 
	CDynamicArray	m_HeroNameArray; 
	int		m_CurSelHero; 
	int		m_CurSelClass; 
	string	m_NewHeroName; 
}; 
 
#endif