什么是在XNA框架枚举中为键调用的'@'符号?

问题描述 投票:0回答:1

在我的游戏中,我使用Microsoft.Xna.Framework.Input库检查键的输入,例如,Keys.A是A,或者Keys.OemTilde是'〜',但我找不到@的正确键。 enum叫做Keys。有人能告诉我它是什么吗?

c# input xna key
1个回答
0
投票

在美国键盘上它是:Shift + 2

所以完整的代码示例是:

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

所有钥匙请参阅Keys Enum link

并非所有键盘布局都相同。

找出按键的简单方法是将以下代码添加到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中查看“输出”选项卡以查看按下的键。

测试后删除这些行。

© www.soinside.com 2019 - 2024. All rights reserved.