我正在使用 Google Play 游戏服务
在 Android
中开发一款回合制多人游戏。
当用户点击 Finish 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);
}
});
当前玩家的游戏在“已完成的游戏”部分得到更新。
然而对手的游戏被列为“我的回合”
来自 在 Android 中开发回合制多人游戏
页面:
“Play Game 服务向所有其他比赛参与者发送通知,通知他们比赛已经结束。这些参与者在他们各自的比赛列表 UI 中的“轮到你”类别下看到这场比赛。此时,您的游戏可以为这些参与者调用 finishMatch() 以保存他们的最终游戏数据。调用此方法还会将匹配移动到参与者匹配列表 UI 中的“已完成匹配”类别。”
如何为其他玩家调用 finishMatch
?
--是否通过mGoogleApiClient
--或者有没有办法让对手的比赛状态= MATCH_STATUS_COMPLETE
有人可以帮忙吗?
最佳答案
您应该在每个其他播放器设备上进行以下调用:
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(至少我在我的实现中看到的是这样)。
关于android - 在 finishMatch 上结束多人游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28846258/