petter2012 Ответов: 2

Как написать этот код проверки ключей в UWP?


Привет,

Я пишу игровой движок для UWP. У меня есть фрагмент кода, взятый из XNA, проверяющий, нажата ли определенная клавиша (см. Ниже). В моем игровом движке я бы предпочел не использовать специальные обработчики событий (KeyDown и т. Д.), А вместо этого просто проверять нажатые клавиши в моем игровом цикле. Одна из причин этого заключается в том, что я могу контролировать, например, частоту выстрелов пули, если клавиша постоянно нажимается (с помощью таймера и мода). Это также позволило бы клавишам быть независимыми друг от друга, например, клавиши со стрелками вверх и вправо обеспечивают диагональное перемещение для игрока A, в то время как другой игрок (используя ту же клавиатуру) использует клавиши A и W для перемещения своего персонажа в другом направлении, и они оба время от времени стреляют из своих лазерных пушек.


Код, который я нашел, выглядит следующим образом:

public void DrawHelp()
       {
           if (Keyboard.GetState().IsKeyDown(Keys.Tab))
           {


То, о чем я думаю, - это в основном серия операторов if (код неправильный - это просто показать, что я хочу):

 public void CheskKeysPressed()
        {
            if (Keyboard.GetState().KeyDown.Holds(Keys.Right) &&
(Keyboard.GetState().KeyDown.Holds(Keys.Up))
            { //diagonal move


Итак, можно ли написать что-то подобное в UWP, и если да, то как?

Спасибо!

Петтер

Что я уже пробовал:

Я сделал некоторые поиски в Bing и Google для этого, но там все еще очень мало информации об UWP.

2 Ответов

Рейтинг:
2

petter2012

Я получил хороший ответ здесь: c# - обнаружение нажатых клавиш без событий в UWP - переполнение стека[^]

Надеюсь, что это может помочь любому человеку с той же проблемой.

С Наступающим Новым Годом!


Рейтинг:
13

Richard MacCutchan

Тот же вопрос, что и ваш предыдущий вопрос: Каков самый умный способ обнаружения нажатий клавиш в uwp?[^].