Хм, ну, я должен согласиться с sftrabbit, что вы должны показать код, который не работает, а не то, что работает.Но я отправлю это с предоставленной информацией.Попробуйте что-то вроде этого:
#include <SDL/SDL.h>
class SystemManager {
public:
// Here we will just have a couple public members for example purposes.
bool running;
SDL_Event events;
void inputManager(); // Handle input.
void renderingManager(); // Handle drawing pretty pictures.
};
void SystemManager::inputManager() {
while(SDL_PollEvent(&events)) {
if(events.type == SDL_QUIT)
running = false;
}
}
void SystemManager::renderingManager() {
// Draw pretty pictures...
}
int main(int argc, char* argv[]) {
SDL_Init(SDL_INIT_EVERYTHING);
// Make your screen here...
SystemManager sysMgr;
sysMgr.running = true;
// Game Loop:
while(sysMgr.running) {
sysMgr.inputManager();
sysMgr.renderingManager();
}
// Don't forget to quit SDL:
SDL_Quit();
return 0;
}
Редактировать: я должен объяснить еще немного.По сути, это работает благодаря наличию единственного объекта, который обрабатывает как рендеринг, так и ввод, наряду с (ключевой частью), имеющим контроль над рабочей переменной.Мое предположение о том, что у вас не получилось, состоит в том, что в главной функции у вас была переменная, запускающая bool, к которой у вашего класса не было доступа.