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和[n]箭头键[s]同时按住其他键时,m被按下时似乎返回false。 (即使它是)
我没有代码操纵它,破坏等,并且想要了解为什么会发生这种情况,以及如何解决它。
如果无法修复它,那么你能告诉我使用事件系统重建这个功能的最好方法吗?
答案 0 :(得分:1)
根据评论,this link here解释说键盘存在固有的局限性。大多数键盘只能在任何给定时间注册一定数量的按键,并忽略任何后续按键,直到您释放一个或多个当前键。这不适用于修饰键(如Ctrl,alt和shift),因为这些键是专门处理的(因为它们旨在与其他键串联使用)。