我为我的简单 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;
}
}
}