2012-04-26 4 views
1

내 사임 버튼 뒤에 다음과 같은 코드가 있습니다턴 기반의 게임에서 사임 (게임 센터)

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

위의 코드에 아무런 문제가 없습니다. Way Game Center Turn 기반 작품은 다음 플레이어가 자신의 차례를 처리하고 게임이 끝났는지 여부를 결정해야하며 게임을 종료하거나 게임을 계속해야한다는 것입니다 (2 명이 넘는 경우). 그래서 그것을하는 게임 코드의 일부입니다.

사임 한 플레이어를 다음 참가자로 더 이상 설정하지 않으면 계속해서 플레이 할 수 있어야합니다. 너는 할 수 없다. (게임을 계속하려면 GKTurnBasedMatchOutcomeQuit를 Lost 대신에 설정해야합니다.)

그 순간 모든 플레이어에 대해 게임을 종료하고 싶다면 해당 경기의 참가자에게 모든 결과를 설정할 수 있습니다. 당신은 적합을보고 나서 모든 플레이어의 게임을 끝내기 위해

[currentMatch endMatchInTurnWithMatchData:data completionHandler:(void (^)(NSError *error))completionHandler]; 

을 사용하십시오.