2014-04-12 27 views
0

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

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

    } 
} 

回答

0

您的更新循环以每秒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 
}