Как перебрать каждый активный GamePad в XNA - PullRequest
2 голосов
/ 20 ноября 2010

Я работаю над своей первой многопользовательской игрой XNA, и мне нужно иметь возможность проверять входные данные от каждого активного GamePad на Xbox360 или ПК, чтобы мне не приходилось копировать ивставьте один и тот же код для четырех разных контроллеров.

Я смотрел на SignedInGamer и SignedInGamerCollection, но ни один из них не имеет ссылки на конкретный GamePad.

Я хотел бы сделать что-то вроде приведенного ниже фрагмента, но с изменениями, чтобы его можно было использовать в цикле для всех текущих игроков, чтобы я мог получить информацию для каждого из них.PlayerIndex имеет «Один», «Два», «Три» и «Четыре».

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

1 Ответ

2 голосов
/ 20 ноября 2010

При вызове GetState структура состояния будет содержать свойство IsConnected.Если значение равно false, контроллер отключен.Вы можете перебирать состояния всех активных контроллеров, используя такой код:

for (PlayerIndex i = PlayerIndex.One; i <= PlayerIndex.Four; i++) {
    GamePadState state = GamePad.GetState(i);
    if (state.IsConnected) {
        // TODO: Process state
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...