我到处搜索过,没找到这个问题的答案:
我有一个2人游戏,通过游戏中心转向。
在玩家完成移动后,他有能力在游戏中心退出游戏。在我的情况下,这自动意味着游戏已经结束而另一个玩家赢了。但是,我找不到一个游戏中心方法来实现这一目标。
我无法使用endMatchInTurnWithMatchData,因为不是这个玩家转。
如果我尝试使用endMatchInTurnWithMatchData,当它是另一个玩家时,这也是不可能的,因为没有其他玩家可以发送endMatchInTurnWithMatchData(因为其他玩家已经退出)。
有没有人知道这方面的解决方案?
谢谢, 马丁
答案 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时将自己设置为下一个参与者。
希望它有所帮助!