En XNA hay una SignedInGamer
clase con un SignedInGamer.PlayerIndex
miembro que debería decirte exactamente eso si puedes obtener el SignedInGamer
objeto.
Para hacer eso, existe la Gamer.SignedInGamers
propiedad estática que contiene una colección de SignedInGamer
objetos basada en el estado actual del sistema. Esto es del Microsoft.Xna.Framework.GamerServices
espacio 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
}
}