GameEngine.h
上传用户:slhang369
上传日期:2022-04-19
资源大小:2452k
文件大小:3k
源码类别:

游戏引擎

开发平台:

Visual Basic

  1. //-----------------------------------------------------------------
  2. // Game Engine Object
  3. // C++ Header - GameEngine.h
  4. //-----------------------------------------------------------------
  5. #pragma once
  6. #pragma   comment(lib,   "winmm.lib")
  7. //-----------------------------------------------------------------
  8. // Include Files
  9. //-----------------------------------------------------------------
  10. #include <windows.h>
  11. #include <mmsystem.h>
  12. //-----------------------------------------------------------------
  13. // Windows Function Declarations
  14. //-----------------------------------------------------------------
  15. int WINAPI        WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
  16.                     PSTR szCmdLine, int iCmdShow);
  17. LRESULT CALLBACK  WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
  18. //-----------------------------------------------------------------
  19. // Game Engine Function Declarations
  20. //-----------------------------------------------------------------
  21. BOOL GameInitialize(HINSTANCE hInstance);
  22. void GameStart(HWND hWindow);
  23. void GameEnd();
  24. void GameActivate(HWND hWindow);
  25. void GameDeactivate(HWND hWindow);
  26. void GamePaint(HDC hDC);
  27. void GameCycle();
  28. void HandleKeys();
  29. void MouseButtonDown(int x, int y, BOOL bLeft);
  30. void MouseButtonUp(int x, int y, BOOL bLeft);
  31. void MouseMove(int x, int y);
  32. //-----------------------------------------------------------------
  33. // GameEngine Class
  34. //-----------------------------------------------------------------
  35. class GameEngine
  36. {
  37. protected:
  38.   // Member Variables
  39.   static GameEngine*  m_pGameEngine;
  40.   HINSTANCE           m_hInstance;
  41.   HWND                m_hWindow;
  42.   TCHAR               m_szWindowClass[32];
  43.   TCHAR               m_szTitle[32];
  44.   WORD                m_wIcon, m_wSmallIcon;
  45.   int                 m_iWidth, m_iHeight;
  46.   int                 m_iFrameDelay;
  47.   BOOL                m_bSleep;
  48.   UINT                m_uiMIDIPlayerID;
  49. public:
  50.   // Constructor(s)/Destructor
  51.           GameEngine(HINSTANCE hInstance, LPTSTR szWindowClass, LPTSTR szTitle,
  52.             WORD wIcon, WORD wSmallIcon, int iWidth = 640, int iHeight = 480);
  53.   virtual ~GameEngine();
  54.   // General Methods
  55.   static GameEngine*  GetEngine() { return m_pGameEngine; };
  56.   BOOL                Initialize(int iCmdShow);
  57.   LRESULT             HandleEvent(HWND hWindow, UINT msg, WPARAM wParam,
  58.                         LPARAM lParam);
  59.   void                ErrorQuit(LPTSTR szErrorMsg);
  60.   // Accessor Methods
  61.   HINSTANCE GetInstance() { return m_hInstance; };
  62.   HWND      GetWindow() { return m_hWindow; };
  63.   void      SetWindow(HWND hWindow) { m_hWindow = hWindow; };
  64.   LPTSTR    GetTitle() { return m_szTitle; };
  65.   WORD      GetIcon() { return m_wIcon; };
  66.   WORD      GetSmallIcon() { return m_wSmallIcon; };
  67.   int       GetWidth() { return m_iWidth; };
  68.   int       GetHeight() { return m_iHeight; };
  69.   int       GetFrameDelay() { return m_iFrameDelay; };
  70.   void      SetFrameRate(int iFrameRate) { m_iFrameDelay = 1000 /
  71.               iFrameRate; };
  72.   BOOL      GetSleep() { return m_bSleep; };
  73.   void      SetSleep(BOOL bSleep) { m_bSleep = bSleep; };
  74.   void                PlayMIDISong(LPTSTR szMIDIFileName = TEXT(""),
  75.                         BOOL bRestart = TRUE);
  76.   void                PauseMIDISong();
  77.   void                CloseMIDIPlayer();
  78. };