Как узнать, вошел ли игрок в систему?

11

Мне было интересно, есть ли способ узнать, вошел ли "игрок" в систему или нет?

Что-то вроде этого:

if (GamePad.GetState(PlayerIndex.Two).IsConnected && !Gamer.PlayerTwo.IsSignedIn)

Так что контроллер подключен и его можно использовать, но плеер не вошел в аккаунт. Что-то вроде догадки.

Поворотное сердце
источник

Ответы:

11

В XNA есть SignedInGamerкласс с SignedInGamer.PlayerIndexчленом, который должен сказать вам, что если вы можете получить SignedInGamerобъект.

Для этого есть Gamer.SignedInGamersстатическое свойство, которое содержит коллекцию SignedInGamerобъектов на основе текущего состояния системы. Это из Microsoft.Xna.Framework.GamerServicesпространства имен.

С этой информацией вы можете сделать что-то вроде следующего:

//If player 2 is connected
if (GamePad.GetState(PlayerIndex.Two).IsConnected)
{
    //If we can't find a signed in gamer with a PlayerIndex of two
    if (!Gamer.SignedInGamers.Cast<SignedInGamer>().Any(x => x.PlayerIndex == PlayerIndex.Two))
    {
        //Your handling code here
    }
}
SpartanDonut
источник