SFML 2.0: Keyboard :: isKeyPressed не всегда возвращается правильно

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. (Хотя это так)

У меня нет кода, управляющего им, взламывающего и т. Д., И я хотел бы получить представление о том, почему это происходит, если возможно, и как это исправить.

Если нет способа исправить это, то можете ли вы посоветовать мне лучший способ переделать эту функцию на моей стороне, используя систему событий?

2

Решение

Согласно комментариям, эта ссылка здесь объясняет, что есть внутреннее ограничение клавиатуры. Большинство клавиатур могут регистрировать только определенное количество нажатий клавиш в любой момент времени и игнорировать любые последующие нажатия клавиш, пока вы не отпустите одну или несколько текущих клавиш. Это не относится к клавишам-модификаторам (таким как Ctrl, Alt и Shift), так как эти клавиши обрабатываются особым образом (так как они предназначались для использования в тандеме с другими клавишами).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]