即使没有按下任何按钮,事件类型也设置为 SDL_MOUSEBUTTONDOWN

Event type set to SDL_MOUSEBUTTONDOWN even when not pressing any button

我正在 SDL2 中测试鼠标事件。每当按下鼠标按钮(右、左和中按钮)时,我想将 "button" 打印到控制台 window。但是,当我在不按任何按钮的情况下移动鼠标时,也会打印该消息。这是为什么?

while (!quit)
    {

        SDL_WaitEvent(&event);


        switch (event.type)
        {
        case SDL_QUIT:
            quit = true;
            break;

        default:

            if (event.type = SDL_MOUSEBUTTONDOWN)
            {
                std::cout << "button\n";
            }
            break;
    }

你赋值而不是比较。必须是:

 if (event.type == SDL_MOUSEBUTTONDOWN) // was '='

避免此类错误的方法之一是使用 Yoda 表示法:

if (SDL_MOUSEBUTTONDOWN == event.type)