代码之家  ›  专栏  ›  技术社区  ›  Caleb Hearth

如何迭代XNA中的每个活动游戏板

  •  2
  • Caleb Hearth  · 技术社区  · 14 年前

    我正在开发我的第一款多人XNA游戏,我需要能够检查每个活动的输入。 GamePad 在Xbox360或PC上,这样我就不必为四个不同的控制器复制和粘贴相同的代码。

    我看过 SignedInGamer SignedInGamerCollection 但是他们都没有提到 游戏板 .

    我想做一些类似下面的代码片段的事情,但是进行了修改,以便它可以在一个循环中用于所有当前的播放器,这样我就可以为每个播放器获取输入。 PlayerIndex 有“一”、“二”、“三”和“四”。

    GamePadState gS = GamePad.GetState(Microsoft.Xna.Framework.PlayerIndex.One);
    
    1 回复  |  直到 14 年前
        1
  •  2
  •   Andrew Russell    14 年前

    当你打电话的时候 GetState ,状态结构将包含属性 IsConnected . 如果为假,则控制器断开连接。您可以使用如下代码迭代所有活动控制器的状态:

    for (PlayerIndex i = PlayerIndex.One; i <= PlayerIndex.Four; i++) {
        GamePadState state = GamePad.GetState(i);
        if (state.IsConnected) {
            // TODO: Process state
        }
    }