vendredi 19 novembre 2021

IF in an SDL_PollEvent does not work as expected

I'm trying to code a pause button when pressing 'p' in C with SDL2.

The code below stops the sprite movements when pressing 'p' and resume it when pressing 'r':

SDL_PollEvent(&event);
switch(event.type)
{
    case SDL_QUIT:
        continuer = 0;
        break;
    case SDL_KEYUP:
        switch(event.key.keysym.sym)
        {
            case SDLK_p:
                    pause=1;
                    break;
            case SDLK_r:
                    pause=0;
                    break;
        }
}

But the code below does not pause when pressing 'p', int pause=0 declared at start and outside the main loop and not modified anywhere else than in the SDLK_r below. As if the if(pause==0) was not working:

SDL_PollEvent(&event);
switch(event.type)
{
    case SDL_QUIT:
        continuer = 0;
        break;
    case SDL_KEYUP:
        switch(event.key.keysym.sym)
        {
            case SDLK_p:
                if(pause==0)
                {
                    pause=1;
                    break;
                } else pause=0;
                break;
            case SDLK_ESCAPE:
                continuer=0;
                break;
        }
}

Aucun commentaire:

Enregistrer un commentaire