我正在尝试用C#XNA编写一个程序,如果按下某个键除了某个键,我需要让程序执行某些操作。这是我想要尝试做的事情:
if (keyboard.IsKeyPressed(Keys.A))
{
do stuff;
}
else if (ANY OTHER KEY)
{
do other stuff;
}
答案 0 :(得分:2)
使用Keyboard.GetState().GetPressedKeys()
。
例如:
var keys = Keyboard.GetState().GetPressedKeys();
if (keys.Count() > 0 && !keys.Contains(Keys.A)) {
// Do something.
}
P.S。上述代码未经过测试。
答案 1 :(得分:1)
由于Keyboard.GetState().GetPressedKeys()
是一个数组,您可以使用长度(或计数)来查看是否按下了某个键:
if (Keyboard.GetState().GetPressedKeys().Length > 0)
{
// Do something.
}
由于所有按下的键都存储在此数组中,因此您可以看到其中的特定键。这就是您可以使用Contains(Keys.YourSpecificKey))
方法进行检查的原因。
然后,您可以使用此选项在布尔表达式中使用!
检查此特定键是否不在数组中。
var keys = Keyboard.GetState().GetPressedKeys();
if (keys.Count() > 0 && !keys.Contains(Keys.A))
{
// Do something.
}
由于此代码(可能)位于Update(GameTime gameTime)
方法中,因此每秒检查60次。