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