当玩家退出trun时,如何结束基于2人回合的游戏中心比赛

时间:2013-06-24 11:04:19

标签: game-center quit gkturnbasedmatch

我到处搜索过,没找到这个问题的答案:

我有一个2人游戏,通过游戏中心转向。

在玩家完成移动后,他有能力在游戏中心退出游戏。在我的情况下,这自动意味着游戏已经结束而另一个玩家赢了。但是,我找不到一个游戏中心方法来实现这一目标。

我无法使用endMatchInTurnWithMatchData,因为不是这个玩家转。

如果我尝试使用endMatchInTurnWithMatchData,当它是另一个玩家时,这也是不可能的,因为没有其他玩家可以发送endMatchInTurnWithMatchData(因为其他玩家已经退出)。

有没有人知道这方面的解决方案?

谢谢, 马丁

2 个答案:

答案 0 :(得分:0)

您必须实施turnBasedMatchmakerViewController:playerQuitForMatch: GKTurnBasedMatchmakerViewControllerDelegate方法。这是一个示例代码:

-(void)turnBasedMatchmakerViewController: (GKTurnBasedMatchmakerViewController *)viewController playerQuitForMatch:(GKTurnBasedMatch *)match {
    NSUInteger currentIndex = [match.participants indexOfObject:match.currentParticipant];
    GKTurnBasedParticipant *next = [match.participants objectAtIndex:(currentIndex + 1)%[match.participants count]];
    [match participantQuitInTurnWithOutcome:GKTurnBasedMatchOutcomeQuit nextParticipants:@[next] turnTimeout:MAXFLOAT matchData:match.matchData completionHandler:nil];
    [next setMatchOutcome:GKTurnBasedMatchOutcomeWon];
    [match endMatchInTurnWithMatchData:match.matchData completionHandler:nil];
}

答案 1 :(得分:0)

我正在努力解决同样的问题。最终为我工作的是在调用participantQuitInTurnWithOutcome时将自己设置为下一个参与者。

希望它有所帮助!