天天看點

SDL2.0 事件驅動

在SDL中,每當有一個事件發生, 它會被置于事件隊列中。事件隊列為每個發生的事件儲存了事件資料。

是以如果你按一下滑鼠按鈕,再移動一下滑鼠,接着再按下鍵盤上某個按鍵,事件隊列看起來會像這樣:

SDL2.0 事件驅動

函數

SDL_PollEvent()

 的作用是從事件隊列底部取出一個事件并将其事件資料粘貼到一個

SDL_Event

類型的結構體中。

SDL2.0 事件驅動

這段代碼的作用是:隻要事件隊列中還有事件,将它們逐一地取出來。

  1. //如果使用者點選了視窗右上角的關閉按鈕
  2. if( event.type == SDL_QUIT )
  3. {
  4. //退出程式
  5. quit = true;
  6. }
  7. }
  8. }

示例代碼:

SDL_Event event;
	while (1){
		SDL_PollEvent(&event);
		if (event.type == SDL_QUIT){
			break;
		}
	}