На клавиатурах США это: Сдвиг + 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, чтобы увидеть нажатие клавиш.
Удалите эти строки после тестирования.