如何确定Local Player是否赢得了Google Play TurnBasedMatch?

时间:2015-04-05 16:05:43

标签: android google-play-services google-play-games

我正在使用Xamarin.Android和MonoGame制作Android游戏。我正在使用Google Play的TurnBasedMatch API来处理游戏的多人游戏。

在比赛结束时,我想确定本地播放器(在设备上登录Google Play的玩家)是否赢得了比赛。基本上,我希望能够说“你赢了!”#34;或者"你输了!"适当。

令人惊讶的是,我还没有在TurnBasedMatch库中找到任何内容,以确定 I 是否赢得了比赛。我相信我一定会错过一些明显的东西。有没有人想出办法确定这些信息?

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以这样做:

String localPlayerId = Games.Players.getCurrentPlayerId( getApiClient());   
Participant localParticipant = mMatch.getParticipant( mMatch.getParticipantId( localPlayerId));
ParticipantResult result = localParticipant.getResult();

if (result != null && result.getResult() == ParticipantResult.MATCH_RESULT_WIN) {
  // Local player won, show greetings...
}

注意:要使其工作,您必须先调用finishMatch(..),其参与者的结果如下:

List<ParticipantResult> participantResults = new ArrayList<ParticipantResult>();
participantResults.add( new ParticipantResult( participantId1, ParticipantResult.MATCH_RESULT_WIN, 1));
participantResults.add( new ParticipantResult( participantId2, ParticipantResult.MATCH_RESULT_LOSS, 2));

Games.TurnBasedMultiplayer.finishMatch(
    getApiClient(),
    mMatch.getMatchId(),
    gameData,
    participantResults
);

答案 1 :(得分:0)

我能够通过演绎来解决这个限制。我的游戏只有2个玩家,所以我用getDescriptionParticipant检查我的对手的名字(&#34;让参与者代表比赛中的主要对手。&#34;)如果不是获胜参赛者的名字(我的游戏商店)然后我知道本地玩家已经赢了。