Невозможно опросить событие щелчка мыши в SDL - PullRequest
3 голосов
/ 23 августа 2011

У меня есть код

int userinput()
{
    while(hasquit == false)
    {
        while ( SDL_PollEvent(&event) )
        {
            if ( event.type == SDL_QUIT )
            {
                hasquit = true;
            }
            if ( event.type == SDL_KEYDOWN )
            {
                if ( event.key.keysym.sym == SDLK_ESCAPE )
                {
              hasquit = true;
                }
                if(event.type == SDL_MOUSEBUTTONDOWN)
                {
                    if(event.button.button == SDL_BUTTON_LEFT)
                    {
                //do something
                    }
                }
            }
        }
    }
}

, которая в значительной степени является структурой событий, которую я скопировал из этих руководств . Я могу получить события SDL_QUIT и SDLK_ESCAPE, но если я попытаюсь сделать

hasquit = true

с любой из кнопок мыши, если утверждения, ничего не происходит.

1 Ответ

3 голосов
/ 23 августа 2011

У вас есть

if(event.type == SDL_MOUSEBUTTONDOWN)

внутри блока

if ( event.type == SDL_KEYDOWN )

.Это должно быть отдельно.

Это должно работать:

int userinput()
{
    while(hasquit == false)
    {
        while ( SDL_PollEvent(&event) )
        {
            if ( event.type == SDL_QUIT )
            {
                hasquit = true;
            }
            if ( event.type == SDL_KEYDOWN )
            {
                if ( event.key.keysym.sym == SDLK_ESCAPE )
                {
                    hasquit = true;
                }
            }
            if(event.type == SDL_MOUSEBUTTONDOWN)
            {
                if(event.button.button == SDL_BUTTON_LEFT)
                {
                    //do something
                }
            }
        }
    }
}
...