Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Game.h"
- Game* Game::s_pInstance = 0;
- bool Game::init(const char* title, int xpos, int ypos, int width,
- int height, int flags)
- {
- m_bRunning = true;
- //attempt to initialize SDL
- if(SDL_Init(SDL_INIT_EVERYTHING) == 0)
- {
- std::cout<<"SDL Init success\n";
- //init the window
- m_pWindow = SDL_CreateWindow(title, xpos, ypos,
- width, height, flags);
- if(m_pWindow !=0) // window init success
- {
- std::cout<<"Window creation success\n";
- m_pRenderer = SDL_CreateRenderer(m_pWindow, -1, 0);
- if(m_pRenderer !=0) //renderer init success
- {
- std::cout<<"renderer creation success\n";
- SDL_SetRenderDrawColor(m_pRenderer,255,0,0,255);
- SDL_Surface* pTempSurface = IMG_Load("assets/animate-alpha.png");
- m_pTexture = SDL_CreateTextureFromSurface(m_pRenderer, pTempSurface);
- SDL_FreeSurface(pTempSurface);
- if(!TheTextureManager::Instance()->load("assets/animate-alpha.png",
- "animate", m_pRenderer))
- {
- return false;
- }
- m_gameObjects.push_back(new Player(new LoaderParams(100,100,128,82,
- "animate")));
- m_gameObjects.push_back(new Enemy(new LoaderParams(300,300,128,82,
- "animate")));
- TheInputHandler::Instance()->initialiseJoysticks();
- for(int i = 0; i < SDL_NumJoysticks(); i++)
- {
- SDL_Joystick* joy = SDL_JoystickOpen(i);
- if(SDL_JoystickOpened(i))
- {
- m_joysticks.push_back(joy);
- m_joystickValues.push_back(std::make_pair(new
- Vector2d(0,0),new Vector2d(0,0))); //add our pair
- }
- else
- {
- std::cout<<SDL_GetError();
- }
- }
- }
- else
- {
- std::cout<<"window init fail\n";
- return false; //window init fail
- }
- }
- else
- {
- std::cout<<"SDL Init fail\n";
- return false; //SDL init fail
- }
- std::cout<<"init success\n";
- m_bRunning=true; // everything inited successfully
- //start the main loop
- return true;
- }
- }
- void Game::draw(SDL_Renderer*)
- {
- for(std::vector<GameObject*>::size_type i = 0; i !=
- m_gameObjects.size(); i++)
- {
- m_gameObjects[i]->draw(m_pRenderer);
- }
- }
- void Game::render()
- {
- SDL_RenderClear(m_pRenderer);//clear the renderer to the
- //draw colour
- //loop through our objects and draw them
- for(std::vector<GameObject*>::size_type i = 0; i !=
- m_gameObjects.size(); i++)
- {
- m_gameObjects[i]->draw(m_pRenderer);
- }
- SDL_RenderPresent(m_pRenderer); //draw to the screen
- }
- void Game::clean()
- {
- TheInputHandler::Instance()->clean();
- std::cout <<"cleaning game\n";
- SDL_DestroyWindow(m_pWindow);
- SDL_DestroyRenderer(m_pRenderer);
- SDL_Quit();
- }
- void Game::handleEvents()
- {
- TheInputHandler::Instance()->update();
- }
- void Game::update()
- {
- //loop through and update our objects
- for(std::vector<GameObject*>::size_type i = 0; i !=
- m_gameObjects.size(); i++)
- {
- m_gameObjects[i]->update();
- }
- }
- void Game::quit()
- {
- SDL_Quit();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement