2014-01-13 66 views
0

我遇到了SDL問題。當我運行下面的代碼時,它沒有響應。我有.bmp與可執行文件在同一個文件夾中。在代碼或其中.....是否存在問題?我的SDL應用程序未響應

#include "SDL/SDL.h" 

int main(int argc, char* args[]) 
{ 
    SDL_Surface* robot = NULL; 
    SDL_Surface* screen = NULL; 
    SDL_Init(SDL_INIT_EVERYTHING); 
    screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE); 
    robot = SDL_LoadBMP("robot.bmp"); 
    SDL_BlitSurface(robot, NULL, screen, NULL); 
    SDL_Flip(screen); 
    SDL_Delay(12*1000); 
    SDL_FreeSurface(robot); 
    SDL_Quit(); 
    return 0; 
} 
+1

你能澄清沒有迴應嗎?它顯示在「robot.bmp」的圖像?這是在同一個目錄中的圖像? – UmNyobe

+0

[C++遊戲循環示例]的可能重複(http://stackoverflow.com/questions/3029545/c-game-loop-example) – UmNyobe

+0

robot.bmp在同一個directori它是在項目中...當我想要關閉它顯示程序沒有響應。如果我運行它像.exe它不顯示圖像,如果我調試並在代碼塊中運行它顯示它。但在這兩種情況下,如果我點擊屏幕或想關閉它,它顯示程序沒有響應。 – user2942681

回答

3

SDL_Delay(12*1000);將暫停當前線程12秒。問題是暫停的線程是「視頻」線程,負責顯示圖像的線程。 12秒後,窗口將關閉,程序將退出。

爲了看到圖像並隨意退出,您需要等待您選擇的特定事件,如鍵盤事件。請參閱here how to make basic event loop與SDL。