¿Cómo saber si el jugador ha iniciado sesión?

11

Me preguntaba si hay alguna manera de saber si el "jugador" ha iniciado sesión o no.

Algo como esto:

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

Para que el controlador esté conectado y pueda usarse, pero el jugador no ha iniciado sesión en una cuenta. Algo como una suposición.

Corazón rotativo
fuente

Respuestas:

11

En XNA hay una SignedInGamerclase con un SignedInGamer.PlayerIndexmiembro que debería decirte exactamente eso si puedes obtener el SignedInGamerobjeto.

Para hacer eso, existe la Gamer.SignedInGamerspropiedad estática que contiene una colección de SignedInGamerobjetos basada en el estado actual del sistema. Esto es del Microsoft.Xna.Framework.GamerServicesespacio de nombres.

Con esta información, podría hacer algo como lo siguiente:

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