Ошибка ввода с клавиатуры при нажатии 3 клавиш - PullRequest
3 голосов
/ 14 марта 2012

У меня проблема с моим кодом, когда нажаты 3 клавиши одновременно. Когда я нажимаю

  • Вверх + Вправо + Пробел: перемещается и объект стреляет
  • Вверх + влево + Пробел: перемещается, но не стреляет
  • Вниз + Вправо + Пробел: перемещается, но не стреляет
  • Вниз + Влево + Пробел: перемещается, но не стреляет
  • Все остальные 2 комбинации клавиш в порядке.

вот мой код:

if (newkbState.IsKeyDown(Keys.Up))
    player.MoveFwd();
else if (newkbState.IsKeyDown(Keys.Down))
    player.MoveBkwd();
else
    player.StopMoving();

if (newkbState.IsKeyDown(Keys.Left))
    player.TurnLeft();
else if (newkbState.IsKeyDown(Keys.Right))
    player.TurnRight();
else
    player.StopTurning();

if (newkbState.IsKeyDown(Keys.Space))
    player.Fire();

Ответы [ 2 ]

7 голосов
/ 14 марта 2012

Скорее основная проблема - но поддерживает ли клавиатура более 3 клавиш одновременно?"Ghosting", как его называют, не является неслыханным на старых клавиатурах:

https://www.microsoft.com/appliedsciences/antighostingexplained.mspx

Вы уверены на 100%, что это ваш код?

0 голосов
/ 14 марта 2012

Это может быть проблема с вашей клавиатурой (например, некоторые клавиатуры Microsoft имеют похожие проблемы);просто чтобы быть в безопасности, попробуйте другую клавиатуру.

...