[英]C# XNA 4.0 Check if Any Key is Pressed EXCEPT One
我正在嘗試用C#XNA編寫一個程序,如果按下某個鍵除外,我需要讓程序執行某些操作。 這是我想要嘗試做的事情:
if (keyboard.IsKeyPressed(Keys.A))
{
do stuff;
}
else if (ANY OTHER KEY)
{
do other stuff;
}
使用Keyboard.GetState().GetPressedKeys()
。
例如:
var keys = Keyboard.GetState().GetPressedKeys();
if (keys.Count() > 0 && !keys.Contains(Keys.A)) {
// Do something.
}
PS以上代碼未經過測試。
亞歷山德魯提供了一個正確的答案,但我會詳細說明它的工作原理。 理解你在做什么總是有用的。
由於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次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.