Что символ '@' называется в перечислении фреймворка XNA для ключей? - PullRequest
0 голосов
/ 10 марта 2019

В моей игре я проверяю ввод ключей с помощью библиотеки Microsoft.Xna.Framework.Input, например, Keys.A - это A или Keys.OemTilde - это «~», но я не могу найти правильный ключ для@ в перечислении под названием Keys.Может кто-нибудь сказать мне, что это такое?

1 Ответ

0 голосов
/ 12 марта 2019

На клавиатурах США это: Сдвиг + 2

Итак, полный пример кода:

KeyboardState ks = Keyboard.GetState();
if((ks.isKeyDown(Keys.LeftShift) || ks.isKeyDown(Keys.RightShift)) && ks.isKeyDown(Keys.D2))
{
    // @ was pressed
}

Пожалуйста, смотрите Keys Enum ссылка для всех клавиш.

Не все раскладки клавиатуры одинаковы.

Простой способ выяснить, какая клавиша нажата, - добавить следующий код в game1.cs:

// Class level variables
KeyboardState ks = new KeyboardState(),oks;

Затем в методе Update:

oks = ks;
ks = KeyBoard.GetState();

Keys[] pressed = new Keys[0];
if(ks != oks)
{
   // A key was pressed
   pressed = ks.GetPressedKeys();
}
foreach(var key in pressed)
   Console.WriteLine(key.ToString());

Не используйте никакие модификаторы ( Shift или Alt ). При запуске этого кода вы получите на выходе LeftShift строк.

Просмотрите вкладку «Вывод» в Visual Studio, чтобы увидеть нажатие клавиш.

Удалите эти строки после тестирования.

...