辞职在回合制游戏(游戏中心)
问题描述:
我背后有我的辞职按钮下面的代码:辞职在回合制游戏(游戏中心)
currentMatch.currentParticipant.matchOutcome = GKTurnBasedMatchOutcomeWon;
nextParticipant.matchOutcome = GKTurnBasedMatchOutcomeLost;
[currentMatch participantQuitInTurnWithOutcome:GKTurnBasedMatchOutcomeLost
nextParticipant:nextParticipant matchData:data
completionHandler:^(NSError *error) {
if (error) {
NSLog(@"%@", error);
}
else {
[statusLabel setString:@"You resigned"];
}];
它说:“你辞职”,但对方没有给出通知,又是刚传给他。对手现在不能做任何动作,否则会造成错误。完成比赛的唯一方法是让对手也辞职。
任何人都可以看到上述代码有什么问题吗?
答
上面的代码没有错。游戏中心基于回合的作品是下一个玩家需要处理他的回合,并决定游戏是否结束,并退出或继续游戏(如果玩家超过2个,则更有意义)。所以这是你的游戏代码的一部分。
只要您不再将离开的播放器设置为下一个参与者,就应该可以继续播放。你做不到。 (如果你想继续游戏,你应该把结果设置为GKTurnBasedMatchOutcomeQuit而不是丢失)
如果你真的想在那一刻结束所有玩家的游戏,你可以设置该比赛参与者的所有结果为你认为合适的,然后用
[currentMatch endMatchInTurnWithMatchData:data completionHandler:(void (^)(NSError *error))completionHandler];
结束比赛的所有玩家。