我想知道是否有任何方法可以知道“玩家”是否已登录?
像这样的东西:
if (GamePad.GetState(PlayerIndex.Two).IsConnected && !Gamer.PlayerTwo.IsSignedIn)
编辑:
这样控制器就连接好了(玩家可以使用控制器),但它没有登录任何帐户,有点像猜测。
我正在回答这个以将其标记为已回答,但请不要投票给我,因为我没有回答,请访问:https ://gamedev.stackexchange.com/questions/58616/how-to-know- if-the-player-is-signed-in/58618?noredirect=1#58618并投票给 ToddersLegrande 回答。
在 XNA 中有一个SignedInGamer
类,它的SignedInGamer.PlayerIndex
成员应该会告诉您是否可以获取该SignedInGamer
对象。
为此,有一个Gamer.SignedInGamers
静态属性,其中包含SignedInGamer
基于系统当前状态的对象集合。这是来自Microsoft.Xna.Framework.GamerServices
命名空间。
有了这些信息,您可以执行以下操作:
//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
}
}