2012-11-03 24 views
0

我是最近纔開始使用C工作和使用SDL,所以我敢肯定,這是基本的東西是我搞砸了,但每次示例代碼可以找我看起來像我的,只是我的不行。所以任何幫助都會受到歡迎。SDL_PollEvent不觸發

#include <stdio.h> 
#include <SDL.h> 

int main(int argc, char *argv[]) 
{ 
SDL_Event event; 
int game_running = 1; 
while (game_running) 
{ 
    while (SDL_PollEvent(&event)) 
    { 
     switch (event.type) /* checking for event type */ 
     { 
      case SDL_KEYDOWN: 
       switch(event.key.keysym.sym) 
       { 
        case SDLK_UP: 
         printf("You pressed up.\n"); 
         break; 
        case SDLK_DOWN: 
         printf("You pressed down.\n"); 
         break; 
       } 
       break; 
      case SDL_KEYUP: 
       printf("You stopped pressing the button.\n"); 
       break; 
      case SDL_QUIT: 
       game_running=0; 
       break; 
     } 
    } 
} 
SDL_Quit(); 
printf("The program stopped."); 

return 0; 
} 
+0

定義「不工作」。當你編譯和運行你的程序時(什麼是你的完整程序,具體是什麼)? –

+0

這是在main()區域,所以現在就是這一切應該發生的事情,當我注意到我想寫的一個KeyDown事件時,「哦,你按下了鍵」(對不起,我沒有用英文寫這部分),和一個KeyUP事件的不同消息。 很好,不工作simpy意味着程序永遠不會通過PollEvent進入交換機。 – SaintHUN

+0

我用整個代碼更新了這篇文章,就像我現在所說的那樣,除此之外別無其他。我只是想實現一個簡單的keyevent檢查系統。 – SaintHUN

回答

4

事件處理與顯示錶面相關聯。加入這樣的事情:

SDL_Init (SDL_INIT_VIDEO); 
SDL_SetVideoMode (320, 200, 8, 0); 

,它會工作。

+0

謝謝,現在似乎在工作,我想我可以在不創建窗口的情況下使用它,我甚至不知道我的思維過程是什麼。不管怎樣,謝謝。 :) – SaintHUN