我试图在用户按下“X”按钮时关闭程序,使用
工作正常SDL_Event Events;
while (Run)
{
while (SDL_PollEvent(&Events))
{
if (Events.type == SDL_QUIT)
Run = false;
}
// draw pretty pictures to the window :3
}
在main函数中,但是当我把我的主循环放在一个不与main函数相同的文件中的类时,它仍然会绘制漂亮的图片,但它没有响应按下'X'按钮,我也有尝试在我的main.cpp中声明一个sdl_event,我的main函数位于该函数所在的位置并传递给了类,但是它也没有用。
答案 0 :(得分:0)
#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运行变量,你的类无法访问它。