如何迭代 XNA 中的每个活动 GamePad

发布于 2024-10-03 16:30:54 字数 874 浏览 3 评论 0原文

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

我查看了 SignedInGamerSignedInGamerCollection ,但它们都没有引用特定的 GamePad

我想做类似下面的代码片段的事情,但进行了修改,以便它可以在所有当前玩家的循环中使用,以便我可以获得每个玩家的输入。 PlayerIndex 有“一”、“二”、“三”和“四”。

GamePadState gS = GamePad.GetState(Microsoft.Xna.Framework.PlayerIndex.One);

I'm working on my first multiplayer XNA game, and I need to be able to check input from each active GamePad on an Xbox360 or PC so that I don't have to copy and paste the same code for four different controllers.

I've looked at the SignedInGamer, and SignedInGamerCollection , but none of them have a reference to the specific GamePad.

I'd like to do something like the snippet below, but modified so that it can be used in a loop for all current players so that I can get input for each of them. PlayerIndex has "One", "Two", "Three", and "Four".

GamePadState gS = GamePad.GetState(Microsoft.Xna.Framework.PlayerIndex.One);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱桃奶球 2024-10-10 16:30:54

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

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

When you call GetState, the state structure will contain the property IsConnected. If it is false, the controller is disconnected. You can iterate over states of all active controllers using code like this:

for (PlayerIndex i = PlayerIndex.One; i <= PlayerIndex.Four; i++) {
    GamePadState state = GamePad.GetState(i);
    if (state.IsConnected) {
        // TODO: Process state
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文