移动鼠标会导致事件不更新

Moving the mouse causes events to not update

本文关键字:事件 更新 鼠标 移动      更新时间:2023-10-16

过去两周左右,我一直在做一个有趣的项目,一个游戏。到目前为止,我已经到了发布稳定的地步,没有任何错误。除了一个。这很烦人,尤其是因为我不知道发生了什么。

本质上,我使用SFML的isKeyPressed函数来检查是否按下了键,并使用Event::KeyPressed事件来检查是否释放了键。

错误在于,如果玩家正在移动(按下键),用户移动鼠标,当鼠标移动时释放键(不再按下键)时,玩家将继续移动,直到有东西明确阻止他这样做。

这一系列事件是可复制的,所以它不应该是我的代码,而是SFML处理事件的方式。

有人知道解决这个问题的好办法吗?
(与此相关的是,如果用户"握住"游戏窗口,游戏就会冻结,我真的希望这种情况不会发生)。

如果需要任何代码或更多细节(屏幕截图等),我很乐意提供。非常感谢。

如果你想检查密钥释放,你应该使用Event::KeyReleased事件,而不是Event::KeyPressed,你不认为吗?

但是,当您使用isKeyPressed时,您不需要检查是否释放了关键帧:只需在每个按下关键帧的帧上移动播放器即可。