3
bool m_down = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::M);
bool up_down = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Up);
bool down_down = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Down);
bool left_down = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Left);
bool right_down = sf::Keyboard::isKeyPressed(sf::Keyboard::Key::Right);

这段代码基本上是唯一相关的代码。

当我与 M 和 a[n] 箭头键 [s] 同时按住其他一些键时,按下 m 时似乎返回 false。(虽然是这样)

我没有代码对其进行操作、破坏等,如果可能的话,我想了解一下为什么会发生这种情况,以及如何解决它。

如果无法修复它,那么您能告诉我使用事件系统在我这边重新制作此功能的最佳方法吗?

4

1 回答 1

2

根据评论,此处的此链接说明键盘存在固有限制。大多数键盘在任何给定时间只能注册一定数量的按键,并忽略任何后续按键,直到您释放一个或多个当前按键。这不适用于修饰键(如 Ctrl、alt 和 shift),因为这些键被特殊处理(因为它们旨在与其他键一起使用)。

于 2012-09-09T23:54:46.243 回答