Como saber se o jogador está conectado?

11

Fiquei me perguntando se há alguma maneira de saber se o "jogador" está conectado ou não?

Algo assim:

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

Para que o controlador esteja conectado e possa ser usado, mas o jogador não está conectado a uma conta. Algo como um palpite.

Coração rotativo
fonte

Respostas:

11

No XNA, há uma SignedInGamerclasse com um SignedInGamer.PlayerIndexmembro que deve informar exatamente isso, se você conseguir se apossar do SignedInGamerobjeto.

Para fazer isso, existe a Gamer.SignedInGamerspropriedade estática que contém uma coleção de SignedInGamerobjetos com base no estado atual do sistema. Isso é do Microsoft.Xna.Framework.GamerServicesespaço para nome.

Com essas informações, você pode fazer algo como o seguinte:

//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
fonte