无法轮询SDL中的鼠标单击事件

Unable to poll for mouse click event in SDL

本文关键字:鼠标 单击 事件 SDL      更新时间:2023-10-16

我有代码

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

使用任意一个鼠标按钮if语句,什么也没发生

你有

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
                }
            }
        }
    }
}