我閱讀有關SDL入門書代碼,並有示例代碼是這樣的:SDL_PollEvent做什麼?
void Game::handleEvents()
{
SDL_Event event;
if (SDL_PollEvent(&event))
{
switch (event.type)
{
case SDL_QUIT:
m_bRunning = false;
break;
default:
break;
}
}
}
我明白,這將調查事件隊列,如果有什麼事情,檢索它和它運行到switch語句。在添加此代碼之前,窗口已顯示,但不能拖放,關閉或調整窗口大小。現在我添加了這段代碼,我可以關閉窗口,這正是我所期望的。我沒有想到的是我可以拖放窗口。
我認爲這將是一個單獨的事件,我將來需要包含在switch語句中。爲什麼拖放也起作用?它的SDL_PollEvent(因爲我評論了switch語句,但留下了'if',我仍然可以拖動),但爲什麼?另外,爲什麼只有拖放自動功能?爲什麼不調整大小?
它應該是'while',而不是'if'。但是,是的,在幾乎所有情況下,您都必須響應特定於平臺的消息(SDL在生成事件隊列時內部執行此操作),否則窗口系統將不會更新,甚至不允許用戶允許終止不響應其信號的應用程序。 – keltar