C# 中 XBOX 控制器的事件处理程序?

Posted

技术标签:

【中文标题】C# 中 XBOX 控制器的事件处理程序?【英文标题】:Event Handler for XBOX Controller in C#? 【发布时间】:2014-04-12 16:40:03 【问题描述】:

如果按下“A”按钮,我想使用 XBOX 360 控制器播放声音。在我的代码片段中,我使用了一个 while 循环来检查按钮是否被按下。是否有任何我可以使用的事件处理程序或不同的解决方案(不适用于游戏开发)?

while (b == false)

    GamePadState currentState2 = GamePad.GetState(PlayerIndex.One);
    if (currentState2.IsConnected
         && currentState2.Buttons.A
                == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
    
         play1stTrack();
         isButtonApressed = true;

    

【问题讨论】:

【参考方案1】:

您的更新循环以每秒 60 帧的速度运行(通常),您可以利用这段时间检查输入并进行处理。无需为输入编写自己的循环。

例子:

protected override void Update(GameTime gameTime)

    GamePadState currentState2 = GamePad.GetState(PlayerIndex.One);
    if (currentState2.IsConnected
         && currentState2.Buttons.A
                == Microsoft.Xna.Framework.Input.ButtonState.Pressed)
    
         play1stTrack();
         isButtonApressed = true;
    
    //Handle input with isButtonApressed

【讨论】:

以上是关于C# 中 XBOX 控制器的事件处理程序?的主要内容,如果未能解决你的问题,请参考以下文章

了解 C# 中的事件和事件处理程序

C# 事件处理程序委托中的闭包? [复制]

在 C# 中使用弱处理程序引发 PropertyChanged 事件时发生 ExecutionEngineException

C++ 到 C# 事件处理

是否可以将异步方法作为 c# 中事件处理程序的回调?

关闭事件处理程序 C#