Woher wissen, ob der Spieler angemeldet ist?

11

Ich habe mich gefragt, ob es eine Möglichkeit gibt zu wissen, ob der "Spieler" angemeldet ist oder nicht.

Etwas wie das:

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

Damit ist der Controller angeschlossen und kann verwendet werden, aber der Player ist nicht bei einem Konto angemeldet. So etwas wie eine Vermutung.

Rotierendes Herz
quelle

Antworten:

11

In XNA gibt es eine SignedInGamerKlasse mit einem SignedInGamer.PlayerIndexMitglied, die Ihnen genau das sagen sollte, wenn Sie das SignedInGamerObjekt erreichen können.

Dazu gibt es die Gamer.SignedInGamersstatische Eigenschaft, die eine Sammlung von SignedInGamerObjekten enthält, die auf dem aktuellen Status des Systems basieren. Dies ist aus dem Microsoft.Xna.Framework.GamerServicesNamespace.

Mit diesen Informationen können Sie Folgendes tun:

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