进程以状态3终止 - 代码块

时间:2017-04-21 03:16:20

标签: c sdl

#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))”出现在我面前,我不知道明白这是什么问题。我谷歌但没有发现任何可以帮助我的东西......如果有人可以帮助我,我很困惑。

1 个答案:

答案 0 :(得分:0)

首先,确保您包含正确的头文件。你确定你没有使用吗?如果是,请使用<SDL2/SDL.h>作为标题。

其次,在

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

event.type不是char类型。使用语句。

第三,请检查文件的路径是否正确。它们必须从项目目录的根目录开始,或者指针backgroundbtn_jouer将是NULL