Код: Выделить всё
void Game::InitWindow()
{
SDL_Window* window = NULL;
SDL_Surface* screen_surface = NULL;
if (SDL_Init(SDL_INIT_VIDEO) < 0) {
printf("SDL could not initialize! SDL_Error: %s\n", SDL_GetError());
return;
}
window = SDL_CreateWindow("Asteroid", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1920, 1080, SDL_WINDOW_SHOWN);
screen_surface = SDL_GetWindowSurface(window);
SDL_FillRect(screen_surface, NULL, SDL_MapRGB(screen_surface->format, 0xFF, 0xFF, 0xFF));
SDL_UpdateWindowSurface(window);
//Just a gameloop to keep window open until the user closes the window by pressing the `X` in the corner
SDL_Event e; bool quit = false; while( quit == false ){ while( SDL_PollEvent( &e ) ){ if( e.type == SDL_QUIT ) quit = true; } }
SDL_DestroyWindow(window);
SDL_Quit();
}
Что я пытался решить проблему:
Мне удалось придумать обходной путь, чтобы исправить ее. Я удалил вызов функции InitWindow(), в результате чего конструктор остался совершенно пустым. Затем я назвал его Game.InitWindow() в основной функции. Это исправило ситуацию. Однако мне бы хотелось, чтобы эта функция-член была частной и вызывалась при создании экземпляра объекта Game.
Любая помощь будет принята с благодарностью! Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/791 ... l-scope-to