事件类型设置为SDL_MOUSEBUTTONDOWN,即使在未按下任何按钮时也是如此

Event type set to SDL_MOUSEBUTTONDOWN even when not pressing any button

本文关键字:按钮 任何 SDL 设置 类型 MOUSEBUTTONDOWN 事件      更新时间:2023-10-16

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

while (!quit)
    {
        SDL_WaitEvent(&event);

        switch (event.type)
        {
        case SDL_QUIT:
            quit = true;
            break;
        default:
            if (event.type = SDL_MOUSEBUTTONDOWN)
            {
                std::cout << "buttonn";
            }
            break;
    }

您指定值而不是比较。必须是:

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

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

if (SDL_MOUSEBUTTONDOWN == event.type)