Jak się dowiedzieć, czy gracz jest zalogowany?

11

Zastanawiałem się, czy jest jakiś sposób, aby dowiedzieć się, czy „gracz” jest zalogowany, czy nie?

Coś takiego:

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

Dzięki temu kontroler jest podłączony i można z niego korzystać, ale gracz nie jest zalogowany na konto. Coś jak zgadywanie.

Rotary Heart
źródło

Odpowiedzi:

11

W XNA istnieje SignedInGamerklasa z SignedInGamer.PlayerIndexczłonkiem, która powinna ci powiedzieć, że jeśli możesz zdobyć SignedInGamerobiekt.

Aby to zrobić, istnieje Gamer.SignedInGamerswłaściwość statyczna, która zawiera zbiór SignedInGamerobiektów opartych na bieżącym stanie systemu. To pochodzi z Microsoft.Xna.Framework.GamerServicesprzestrzeni nazw.

Dzięki tym informacjom możesz wykonać następujące czynności:

//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
źródło