在finishMatch上结束多人游戏

时间:2015-03-04 03:36:24

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

我正在Android使用Google Play Game Services开发基于回合制的多人游戏。

当用户点击完成Button

时,我已成功结束游戏
    Games.TurnBasedMultiplayer.finishMatch(mGoogleApiClient, mMatch.getMatchId(), mMatch.getData(), creatorResult, opponentResult)
            .setResultCallback(new ResultCallback<TurnBasedMultiplayer.UpdateMatchResult>() {
                @Override
                public void onResult(TurnBasedMultiplayer.UpdateMatchResult result) {
                    processResult(result);
                }
            });

当前玩家的游戏在&#34;已完成的游戏&#34;中得到更新。部分。

然而,对手的比赛被列为&#34; My Turn&#34;

来自Developing a Turn Based Multiplayer Game in Android页面:

&#34; Play游戏服务向所有其他匹配参与者发送通知,通知他们匹配已结束。这些参与者在各自的匹配列表UI中的“您的回合”类别下看到此匹配。 此时,您的游戏可以为这些参与者调用finishMatch()来保存他们的最终游戏数据。调用此方法也会将匹配移动到参与者的匹配列表UI中的“已完成的匹配”类别。&#34 ;

如何为其他玩家拨打finishMatch

- 是否通过mGoogleApiClient

- 或者有没有办法让对手的匹配状态= MATCH_STATUS_COMPLETE

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您应该在其他每个玩家设备上进行以下呼叫:

Games.TurnBasedMultiplayer.finishMatch( mGoogleApiClient, mMatch.getMatchId());

这将导致每个播放器设备上的状态发生以下变化:

  • 匹配状态将从MATCH_STATUS_ACTIVE更改为 MATCH_STATUS_COMPLETE
  • 匹配转弯状态将从更改 MATCH_TURN_STATUS_MY_TURN到MATCH_TURN_STATUS_COMPLETE。
  • 播放器的参与者状态将从STATUS_JOINED更改为 STATUS_FINISHED。

请注意,玩家参与者状态可能会在其他玩家设备上保持STATUS_JOINED(至少这是我在实施中看到的)。