Guest User

Untitled

a guest
Apr 1st, 2016
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.98 KB | None | 0 0
  1. #include "gameMain.h"
  2. #include "gameSprite.h"
  3.  
  4. gameMain::gameMain()
  5. {
  6.     m_window = nullptr;
  7.     m_renderer = nullptr;
  8.     m_event = new SDL_Event();
  9.  
  10.     Running = true;
  11.     FPS = 60;
  12. }
  13.  
  14. gameMain::~gameMain()
  15. {
  16.     delete m_event;
  17.     SDL_DestroyRenderer(m_renderer);
  18.     SDL_DestroyWindow(m_window);
  19.  
  20.     SDL_Quit();
  21.     IMG_Quit();
  22. }
  23.  
  24. void gameMain::run(std::string title, int w, int h)
  25. {
  26.     m_screenWidth = w;
  27.     m_screenHeight = h;
  28.     m_title = title;
  29.  
  30.     initSystems();
  31.     gameLoop();
  32. }
  33.  
  34. void gameMain::initSystems()
  35. {
  36.     if (SDL_Init(SDL_INIT_VIDEO) != 0)
  37.     {
  38.         printf("Error Starting SDL. Error: %s\n", SDL_GetError());
  39.     }
  40.  
  41.     if (IMG_Init(IMG_INIT_PNG) != IMG_INIT_PNG)
  42.     {
  43.         printf("Error Starting SDL_IMG. ERROR: %s\n", IMG_GetError());
  44.     }
  45.  
  46.     m_window = SDL_CreateWindow(
  47.         m_title.c_str(),
  48.         SDL_WINDOWPOS_CENTERED,
  49.         SDL_WINDOWPOS_CENTERED,
  50.         m_screenWidth,
  51.         m_screenHeight,
  52.         SDL_WINDOW_SHOWN);
  53.  
  54.     if (m_window == nullptr)
  55.     {
  56.         printf("Error Creating SDL_Window. Error: %s\n", SDL_GetError());
  57.     }
  58.  
  59.     m_renderer = SDL_CreateRenderer(m_window,-1,SDL_RENDERER_ACCELERATED);
  60.  
  61.     if (m_renderer == nullptr)
  62.     {
  63.         printf("Error Creating SDL_Renderer. Error: %s\n", SDL_GetError());
  64.     }
  65. }
  66.  
  67. void gameMain::gameLoop()
  68. {
  69.     while (Running)
  70.     {
  71.         Uint32 m_startTime = SDL_GetTicks();
  72.  
  73.         processInput();
  74.         Draw();
  75.  
  76.         if (1000 / FPS > SDL_GetTicks() - m_startTime)
  77.         {
  78.             SDL_Delay((1000 / FPS) - (SDL_GetTicks() - m_startTime));
  79.         }
  80.     }
  81. }
  82.  
  83. void gameMain::processInput()
  84. {
  85.     while (SDL_PollEvent(m_event))
  86.     {
  87.         switch (m_event->type)
  88.         {
  89.             case SDL_QUIT:
  90.             {
  91.                 Running = false;
  92.             } break;
  93.  
  94.             case SDL_KEYDOWN:
  95.             {
  96.                 switch (m_event->key.keysym.sym)
  97.                 {
  98.                     case SDLK_ESCAPE:
  99.                     {
  100.                         Running = false;
  101.                     } break;
  102.                 }
  103.             } break;
  104.         }
  105.     }
  106. }
  107.  
  108. void gameMain::Draw()
  109. {
  110.     SDL_SetRenderDrawColor(m_renderer, 100, 149, 237, 255);
  111.  
  112.     SDL_RenderClear(m_renderer);
  113.     SDL_RenderPresent(m_renderer);
  114. }
  115.  
  116. SDL_Renderer* gameMain::getRenderer()
  117. {
  118.     return m_renderer;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment