移动鼠标会导致事件不更新
Moving the mouse causes events to not update
过去两周左右,我一直在做一个有趣的项目,一个游戏。到目前为止,我已经到了发布稳定的地步,没有任何错误。除了一个。这很烦人,尤其是因为我不知道发生了什么。
本质上,我使用SFML的isKeyPressed函数来检查是否按下了键,并使用Event::KeyPressed事件来检查是否释放了键。
错误在于,如果玩家正在移动(按下键),用户移动鼠标,当鼠标移动时释放键(不再按下键)时,玩家将继续移动,直到有东西明确阻止他这样做。
这一系列事件是可复制的,所以它不应该是我的代码,而是SFML处理事件的方式。
有人知道解决这个问题的好办法吗?
(与此相关的是,如果用户"握住"游戏窗口,游戏就会冻结,我真的希望这种情况不会发生)。
如果需要任何代码或更多细节(屏幕截图等),我很乐意提供。非常感谢。
如果你想检查密钥释放,你应该使用Event::KeyReleased事件,而不是Event::KeyPressed,你不认为吗?
但是,当您使用isKeyPressed时,您不需要检查是否释放了关键帧:只需在每个按下关键帧的帧上移动播放器即可。
相关文章:
- 从C++本机插件更新Vector3数组
- QGraphicsPolygonItem在拖动时未更新QPolygonF坐标
- Android NDK传感器向事件队列报告奇怪的间隔
- 从文本文件中读取时钟时间和事件时间并进行处理
- WMI检测进程创建事件-c++
- EvtExportLogneneneba API正在将远程计算机的事件日志保存到远程PC本身.如何将其保存到主机
- cmake更新缓存的变量
- 更新到莫哈韦后出现cmath错误
- OpenMP:并行更新数组总是需要减少数组吗
- 处理闪烁窗口事件
- C++Builder中的OnClick事件签名存在问题
- 为什么我的变量没有更新,我的 LED 没有亮起?
- 跟踪滚动条上的鼠标事件
- 什么是事件表 (wxWidgets)?
- 如何在 MFCaptureEngine 中获取"Camera removed"事件
- 指针没有更新它在void函数内部指向的值
- 尝试使用 EvtSetChannelConfigProperty() 函数更新最大事件日志文件大小时插入的错误值
- 移动鼠标会导致事件不更新
- OpenGL窗口应用程序检查事件更新的频率
- QThread在GUI事件上调用glBufferData()时不更新OpenGL vbo和不渲染任何东西