【问题标题】:End a multiplayer game on finishMatch在 finishMatch 上结束多人游戏
【发布时间】:2015-05-04 22:58:44
【问题描述】:

我正在使用Google Play Game ServicesAndroid 中开发一款基于回合的多人游戏。

当用户点击完成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);
                }
            });

当前玩家的游戏会在“已完成游戏”部分更新。

然而对手的游戏被列为“我的回合”

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

“Play Game 服务向所有其他比赛参与者发送通知,通知他们比赛已经结束。这些参与者在各自的比赛列表 UI 中的轮到类别下看到这场比赛。此时,您的游戏可以为这些参与者调用 finishMatch() 以保存他们的最终游戏数据。 调用此方法还会将匹配移动到参与者匹配列表 UI 中的 Completed Matches 类别。"

我如何为其他玩家拨打finishMatch

--是不是通过mGoogleApiClient

--或者有没有办法让对手的比赛状态=MATCH_STATUS_COMPLETE

有人可以帮忙吗?

【问题讨论】:

  • 有人有什么建议吗?

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


【解决方案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(至少我在实现中看到的情况是这样)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多