Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "gameMain.h"
- gameMain::gameMain()
- {
- m_window = nullptr;
- m_renderer = nullptr;
- m_event = new SDL_Event();
- Running = true;
- FPS = 60;
- }
- gameMain::~gameMain()
- {
- delete m_event;
- SDL_DestroyRenderer(m_renderer);
- SDL_DestroyWindow(m_window);
- SDL_Quit();
- IMG_Quit();
- }
- void gameMain::run(std::string title, int w, int h)
- {
- m_screenWidth = w;
- m_screenHeight = h;
- m_title = title;
- initSystems();
- gameLoop();
- }
- void gameMain::initSystems()
- {
- if (SDL_Init(SDL_INIT_VIDEO) != 0)
- {
- printf("Error Starting SDL. Error: %s\n", SDL_GetError());
- }
- if (IMG_Init(IMG_INIT_PNG) != IMG_INIT_PNG)
- {
- printf("Error Starting SDL_IMG. ERROR: %s\n", IMG_GetError());
- }
- m_window = SDL_CreateWindow(
- m_title.c_str(),
- SDL_WINDOWPOS_CENTERED,
- SDL_WINDOWPOS_CENTERED,
- m_screenWidth,
- m_screenHeight,
- SDL_WINDOW_SHOWN);
- if (m_window == nullptr)
- {
- printf("Error Creating SDL_Window. Error: %s\n", SDL_GetError());
- }
- m_renderer = SDL_CreateRenderer(m_window,-1,SDL_RENDERER_ACCELERATED);
- if (m_renderer == nullptr)
- {
- printf("Error Creating SDL_Renderer. Error: %s\n", SDL_GetError());
- }
- }
- void gameMain::gameLoop()
- {
- while (Running)
- {
- Uint32 m_startTime = SDL_GetTicks();
- processInput();
- Draw();
- if (1000 / FPS > SDL_GetTicks() - m_startTime)
- {
- SDL_Delay((1000 / FPS) - (SDL_GetTicks() - m_startTime));
- }
- }
- }
- void gameMain::processInput()
- {
- while (SDL_PollEvent(m_event))
- {
- switch (m_event->type)
- {
- case SDL_QUIT:
- {
- Running = false;
- } break;
- case SDL_KEYDOWN:
- {
- switch (m_event->key.keysym.sym)
- {
- case SDLK_ESCAPE:
- {
- Running = false;
- } break;
- }
- } break;
- }
- }
- }
- void gameMain::Draw()
- {
- SDL_SetRenderDrawColor(m_renderer, 100, 149, 237, 255);
- SDL_RenderClear(m_renderer);
- SDL_RenderPresent(m_renderer);
- }
- SDL_Renderer* gameMain::getRenderer()
- {
- return m_renderer;
- }
Add Comment
Please, Sign In to add comment