2017-04-21 56 views
-1
#include <stdlib.h> 
#include <stdio.h> 
#include <SDL/SDL.h> 

void pause() 
{ 
    int continuer = 1; 
    SDL_Event event; 

    while (continuer) 
    { 
     SDL_WaitEvent(&event); 
     switch(event.type) 
     { 
      case SDL_QUIT: 
       continuer = 0; 
     } 
    } 
} 

int main(int argc, char *argv[]) 
{ 
    SDL_Init(SDL_INIT_VIDEO); 
    SDL_Rect posBack, posbtn_jouer, posbtn_regles; 
    SDL_Surface *screen = NULL, *background = NULL, *btn_jouer = NULL, *btn_regles = NULL; 

    posBack.x = 0; 
    posBack.y = 0; 
    posbtn_jouer.x = 400; 
    posbtn_jouer.y = 460; 
    posbtn_regles.x = 400; 
    posbtn_regles.y = 570; 

    screen = SDL_SetVideoMode(1080, 720, 32, SDL_HWSURFACE); 
    background = SDL_LoadBMP("game_home.bmp"); 
    SDL_BlitSurface(background,NULL,screen,&posBack); 

    btn_jouer = SDL_LoadBMP("btn_jouer.bmp"); 
    SDL_SetColorKey(btn_jouer,SDL_SRCCOLORKEY,SDL_MapRGB(btn_jouer->format,255,255,255)); 
    SDL_BlitSurface(btn_jouer,NULL,screen,&posbtn_jouer); 

    btn_regles = SDL_LoadBMP("btn_regles.bmp"); // Ouverture du bouton regles 
    SDL_SetColorKey(btn_regles,SDL_SRCCOLORKEY,SDL_MapRGB(btn_regles->format,255,255,255)); 
    SDL_BlitSurface(btn_regles,NULL,screen,&posbtn_regles); 
    SDL_Flip(screen); 

    pause(); 

    SDL_FreeSurface(background); 
    SDL_FreeSurface(btn_jouer); 
    SDL_FreeSurface(btn_regles); 

    SDL_Quit(); 

    return EXIT_SUCCESS; 
} 

我使用SDL和C的遊戲程序中,當我編譯該代碼時,消息「進程終止狀態3(0分鐘0秒(S ))「在我看來,我不明白是什麼問題。我谷歌它,但沒有發現任何可以幫助我...如果有人可以幫助我,我很困惑。過程終止狀態3 - 碼塊

+0

什麼是頭文件(在編譯時)和庫(在鏈接時)沒有包含在內,所以編譯失敗是由於沒有包含'SDL'頭文件。 – user3629249

+0

發佈的代碼ALSO並不乾淨地編譯,因爲'main()'的簽名是'int main(int argc,char * argv [])',但參數未被使用。建議使用其他有效簽名:'int main(void)' – user3629249

+1

爲了便於閱讀和理解:1)始終縮進代碼。在每個大括號'{'後縮進。在每個大括號'}'之前unindent。爲每個縮進級別建議4個空格 – user3629249

回答

0

首先,確保包含正確的頭文件。你確定你沒有使用嗎?如果是,請使用<SDL2/SDL.h>作爲標題。

其次,在

switch(event.type) 
    { 
     case SDL_QUIT: 
      continuer = 0; 
    } 

event.type不是類型char。使用語句。

第三,請檢查您的文件的路徑是否正確。他們必須從項目目錄的根目錄開始,或者指針backgroundbtn_jouer將爲NULL