SceneManage.cpp
上传用户:jalin138
上传日期:2022-02-12
资源大小:5720k
文件大小:1k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. #include "SceneManage.h"
  2. #include "State.h"
  3. #define  _CRTDBG_MAP_ALLOC
  4. #include <crtdbg.h>
  5. #ifdef _DEBUG
  6. #define new   new(_NORMAL_BLOCK, __FILE__, __LINE__)
  7. #endif
  8. CSceneManage::CSceneManage(CState *_State)
  9. {
  10. int tmpFlag = _CrtSetDbgFlag( _CRTDBG_REPORT_FLAG );
  11. tmpFlag |= _CRTDBG_LEAK_CHECK_DF;
  12. _CrtSetDbgFlag( tmpFlag );
  13. m_pState = _State;
  14. }
  15. CSceneManage::~CSceneManage(void)
  16. {
  17. SAFE_DELETE( m_pState );
  18. }
  19. // 逻辑
  20. bool CSceneManage::Logic(void)
  21. {
  22. if ( NULL == m_pState )
  23. return false;
  24. if ( m_pState->Logic() )
  25. {
  26. return m_pState->Handle( this );
  27. }
  28. return false;
  29. }
  30. // 渲染
  31. void CSceneManage::Render(void)
  32. {
  33. if ( NULL == m_pState )
  34. return;
  35. m_pState->Render();
  36. }
  37. // 切换场景
  38. void CSceneManage::ChangeState(CState *_State)
  39. {
  40. //if ( NULL != m_pState )
  41. SAFE_DELETE( m_pState );
  42. m_pState = _State;
  43. }