c++ - SFML 输入 GetMouseX 和 GetMouseY 未捕捉到鼠标移动

标签 c++ user-interface mouseevent sfml

我正在我的应用程序中编写 GUI,我注意到按钮按下并没有很快被注册。我做了一些惰性调试(将鼠标的坐标发送到输出),我注意到当鼠标移动到某个地方时,Input 的 GetMouseX 和 GetMouseY 的响应速度不够快。

这个小花絮应该能够重现它(在典型游戏循环中调用的 HandleEvents 函数中,显然将 App::whatever 替换为工作区中的任何内容)。

int x = App::GetApp()->GetInput().GetMouseX();
int y = App::GetApp()->GetInput().GetMouseY();
std::cout << x << " " << y << "\n";

只需在屏幕上移动鼠标即可观看输出。我不确定这是否是正确的行为,并且我将其用于错误的目的,或者什么,但我需要某种方法来在任何给定时间检索鼠标的确切位置。感谢任何帮助,谢谢。

附注如果我缓慢移动鼠标,则不会出现问题。

编辑:

我错了。该问题仅在其余事情发生的情况下发生。当我屏蔽掉大部分游戏循环并只包含检索光标位置时,它工作得很好。但仍然不确定出了什么问题。

最佳答案

问题是我每帧只轮询一个事件,而不是轮询所有事件。

关于c++ - SFML 输入 GetMouseX 和 GetMouseY 未捕捉到鼠标移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3128365/

相关文章:

c++ - 指向类的私有(private)数据成员的指针

jquery - 检测留下埋藏的元素 - Jquery

delphi - 为什么 TStringGrid 的子控件不能正常工作?

c++ - LibVLC 访问冲突

c++ - 如何实现 const_auto,因为 C++11 缺少它?

git - 强大的 gitk/gitg 替代品?

c# - 为什么 ContextMenu(弹出菜单)不显示?

java - 第二个 JFrame 中的组件未显示

javascript - 区分 mouseup mousedown 和 click

c++ - HP-UX 和 Solaris 10 之间的 POSIX 线程行为不同