簡體   English   中英

C#XNA 4.0檢查是否按下任何鍵除了一個

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM