Advertisement
Al99

Game.cpp

Nov 11th, 2019
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. #include "Game.h"
  2.  
  3. Game* Game::s_pInstance = 0;
  4.  
  5. bool Game::init(const char* title, int xpos, int ypos, int width,
  6.     int height, int flags)
  7. {  
  8.     m_bRunning = true;
  9.     //attempt to initialize SDL
  10.     if(SDL_Init(SDL_INIT_EVERYTHING) == 0)
  11.     {
  12.         std::cout<<"SDL Init success\n";
  13.         //init the window
  14.         m_pWindow = SDL_CreateWindow(title, xpos, ypos,
  15.         width, height, flags);
  16.             if(m_pWindow !=0) // window init success
  17.             {
  18.             std::cout<<"Window creation success\n";
  19.             m_pRenderer = SDL_CreateRenderer(m_pWindow, -1, 0);
  20.                 if(m_pRenderer !=0) //renderer init success
  21.                 {
  22.                 std::cout<<"renderer creation success\n";
  23.                 SDL_SetRenderDrawColor(m_pRenderer,255,0,0,255);
  24.            
  25.            
  26. SDL_Surface* pTempSurface = IMG_Load("assets/animate-alpha.png");
  27.  
  28. m_pTexture = SDL_CreateTextureFromSurface(m_pRenderer, pTempSurface);
  29.  
  30. SDL_FreeSurface(pTempSurface);
  31.  
  32.    
  33.     if(!TheTextureManager::Instance()->load("assets/animate-alpha.png",
  34.     "animate", m_pRenderer))
  35.     {
  36.     return false;
  37.    
  38.     }
  39.  
  40.     m_gameObjects.push_back(new Player(new LoaderParams(100,100,128,82,
  41.     "animate")));
  42.    
  43.     m_gameObjects.push_back(new Enemy(new LoaderParams(300,300,128,82,
  44.     "animate")));
  45.    
  46.     TheInputHandler::Instance()->initialiseJoysticks();
  47.  
  48.     for(int i = 0; i < SDL_NumJoysticks(); i++)
  49.     {
  50.         SDL_Joystick* joy = SDL_JoystickOpen(i);
  51.         if(SDL_JoystickOpened(i))
  52.         {
  53.             m_joysticks.push_back(joy);
  54.             m_joystickValues.push_back(std::make_pair(new
  55.             Vector2d(0,0),new Vector2d(0,0))); //add our pair
  56.         }
  57.         else
  58.         {
  59.             std::cout<<SDL_GetError();
  60.         }
  61.     }
  62.  
  63.  
  64. }
  65.     else
  66.     {
  67.         std::cout<<"window init fail\n";
  68.         return false; //window init fail
  69.     }
  70. }
  71. else
  72. {
  73.     std::cout<<"SDL Init fail\n";
  74.     return false; //SDL init fail
  75. }
  76.  
  77. std::cout<<"init success\n";
  78. m_bRunning=true; // everything inited successfully
  79. //start the main loop
  80.  
  81. return true;
  82.  
  83. }
  84.  
  85. }
  86.  
  87. void Game::draw(SDL_Renderer*)
  88. {
  89.     for(std::vector<GameObject*>::size_type i = 0; i !=
  90.     m_gameObjects.size(); i++)
  91.     {
  92.         m_gameObjects[i]->draw(m_pRenderer);
  93.     }
  94. }
  95.  
  96. void Game::render()
  97. {
  98.     SDL_RenderClear(m_pRenderer);//clear the renderer to the
  99.     //draw colour
  100.    
  101.     //loop through our objects and draw them
  102.     for(std::vector<GameObject*>::size_type i = 0; i !=
  103.     m_gameObjects.size(); i++)
  104.     {
  105.         m_gameObjects[i]->draw(m_pRenderer);
  106.     }
  107.  
  108.     SDL_RenderPresent(m_pRenderer); //draw to the screen
  109. }
  110.  
  111. void Game::clean()
  112. {
  113.     TheInputHandler::Instance()->clean();
  114.     std::cout <<"cleaning game\n";
  115.     SDL_DestroyWindow(m_pWindow);
  116.     SDL_DestroyRenderer(m_pRenderer);
  117.     SDL_Quit();
  118. }
  119.  
  120. void Game::handleEvents()
  121. {
  122.     TheInputHandler::Instance()->update();
  123. }
  124.  
  125. void Game::update()
  126. {
  127.     //loop through and update our objects
  128.    
  129.     for(std::vector<GameObject*>::size_type i = 0; i !=
  130.     m_gameObjects.size(); i++)
  131.     {
  132.         m_gameObjects[i]->update();
  133.     }
  134. }
  135.  
  136. void Game::quit()
  137. {
  138.     SDL_Quit();
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement