为什么只移动鼠标就触发了我的按键

问题描述 投票:0回答:0

我为我的简单 3D 游戏编写了一个移动相机的函数。我一直遇到鼠标移动功能由于某种原因触发我的 Escape 键的问题,我暂时用它来关闭程序,即使我没有按下它。 当我用其他键添加更多

else if(event.key.keysym.sym == ...)
时,它也会触发它们。

这是主游戏循环中轮询事件的代码:

void game::userInput()
{
    while(SDL_PollEvent(&event) != 0)
    {
        if(event.type == SDL_QUIT)
        {
            cout << "quit";
            running = false;
        }
        else if(event.key.keysym.sym == SDLK_ESCAPE)
        {
            cout << event.key.keysym.sym << endl;
            running = false;
        }
        else
        {
            square->input_mouse(event);
        }
    }
}

这里是接受鼠标输入的代码

void input_mouse(SDL_Event event)
    {
        float mouse_sensitivity = 0.001;
        if(event.type == SDL_MOUSEMOTION)
        {
            int mxo = event.motion.xrel;
            if(mxo < 0)
            {
                cout << "Looking left" << endl;
            }
            else if(mxo > 0)
            {
                cout << "Looking right" << endl;
            }
        }
    }
mouseevent sdl-2 keyboard-events
© www.soinside.com 2019 - 2024. All rights reserved.