ScreenDisplayer.cpp 833 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "Base.h"
  2. #include "ScreenDisplayer.h"
  3. namespace gameplay
  4. {
  5. ScreenDisplayer* ScreenDisplayer::__scriptInstance = NULL;
  6. ScreenDisplayer::ScreenDisplayer() : _time(0L), _startTime(0)
  7. {
  8. }
  9. ScreenDisplayer::~ScreenDisplayer()
  10. {
  11. long elapsedTime = (long)(Game::getInstance()->getGameTime() - _startTime);
  12. if (elapsedTime < _time)
  13. Platform::sleep(_time - elapsedTime);
  14. }
  15. void ScreenDisplayer::start(const char* function, unsigned long time)
  16. {
  17. if (__scriptInstance == NULL)
  18. {
  19. __scriptInstance = new ScreenDisplayer();
  20. }
  21. __scriptInstance->_time = time;
  22. Game::getInstance()->renderOnce(function);
  23. __scriptInstance->_startTime = Game::getInstance()->getGameTime();
  24. }
  25. void ScreenDisplayer::finish()
  26. {
  27. SAFE_DELETE(__scriptInstance);
  28. }
  29. }