Почему окно SDL сразу закрывается? - PullRequest
0 голосов
/ 07 сентября 2018

Это мой C ++ файл:

#include <iostream>
#include "window.h"
#include <SDL2/SDL.h>

int main(int argc, char* argv[]) {

   if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
     std::cout << "Something went wrong" << std::endl;
}
  else { 
   SDL_CreateWindow("Neptune's Limit", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1024, 768, SDL_WINDOW_OPENGL);
   }

   return 0;
}

Когда я запускаю его, он мигает в течение полсекунды, а затем сразу же закрывается. Я посмотрел другие посты по этому поводу, но ответ на них был около SDL_EVENT. У меня такого нет нигде в моей программе.

Что может быть не так?

1 Ответ

0 голосов
/ 13 сентября 2018

После создания SDL окна используйте цикл while для поддержки окна SDL. Я изучаю основные SDL функции с этим учебником

ПРОСТОЙ ПРИМЕР

#include <iostream>
#include <SDL2/SDL.h>

int main(int argc, char* argv[]) {

   if (SDL_Init(SDL_INIT_EVERYTHING) < 0) {
     std::cout << "Something went wrong" << std::endl;
   } else { 
     SDL_CreateWindow("Neptune's Limit", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1024, 768, SDL_WINDOW_OPENGL);
     while( true ) {
       // SDL RUNNING
       // Poll Event Code Maybe here!
     }
   }

   return 0;
}

Возможно, этот код не завершится, потому что нет кода exit-SDL.

Для программы выхода добавить SDL _Event:

SDL POLL EVENT EX)

SDL_Event e;
while(true) { // SDL loop
  while( SDL_PollEvent( &event ) != 0 ) {
    if( event.type == SDL_QUIT ) {
      // Ctrl + C in console !
    }
  } // end of handling event.
}

Надеюсь, это поможет вам.

...