辞职在回合制游戏(游戏中心)

问题描述:

我背后有我的辞职按钮下面的代码:辞职在回合制游戏(游戏中心)

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]; 

结束比赛的所有玩家。