Kir*_* E. 6 objective-c gamekit gkturnbasedmatch ios7
我正在开发基于回合制的GameCenter游戏.A GKTurnBasedMatch创建时使用a GKMatchRequest,with minPlayers并maxPlayers设置为2.我会NSInvalidArgumentException尝试结束游戏endMatchInTurnWithMatchData,并告诉我没有设置matchOutcome所有参与者.在此点之前记录匹配对象会显示我的匹配如下所示:
<GKTurnBasedMatch 0x1c1f2af0 - matchID:c9de6e47-0e9a-4dbe-944b-d2fd4ecd3044 bundleID:com.mybundle.wd status:GKTurnBasedMatchStatusEnded message:'Game Over' creationDate:2013-10-08 01:26:12 +0000 currentParticipant:(null) participants:
<GKTurnBasedParticipant 0x1c184820 - playerID:G:128458444 (local player) status:Done matchOutcome:Lost lastTurnDate:2013-10-10 21:54:22 +0000 timeoutDate:(null)>,
<GKTurnBasedParticipant 0x1c1b0a80 - playerID:G:220673962 status:Done matchOutcome:Lost lastTurnDate:2013-10-10 18:26:16 +0000 timeoutDate:(null)>,
<GKTurnBasedParticipant 0x16ef1610 - playerID:G:128458444 (local player) status:Active matchOutcome:None lastTurnDate:(null) timeoutDate:(null)>,
<GKTurnBasedParticipant 0x16ec64f0 - playerID:(null) status:Matching matchOutcome:None lastTurnDate:(null) timeoutDate:(null)> matchData.length:871 matchDataMaximumSize:65536 exchanges:(null)>
Run Code Online (Sandbox Code Playgroud)
我GKTurnBasedParticipants这里有2个以上,其中两个是同一个玩家!我在游戏中没有做任何特别的事情,除了每回合调用以下内容:
[match endTurnWithNextParticipants:@[nextParticipant] turnTimeout:GKTurnTimeoutDefault matchData:data completionHandler:^(NSError *error){...}]
Run Code Online (Sandbox Code Playgroud)
有谁知道这里发生了什么?这是一个双人游戏,所以我最终得到一个混乱的匹配对象,我该如何防止这种情况?
小智 0
我执行以下操作来结束游戏
((GKTurnBasedParticipant*)[currentMatch.participants objectAtIndex:1]).matchOutcome = GKTurnBasedMatchOutcomeWon;
((GKTurnBasedParticipant*)[currentMatch.participants objectAtIndex:0]).matchOutcome = GKTurnBasedMatchOutcomeLost;
Run Code Online (Sandbox Code Playgroud)
然后我打电话
[currentMatch endMatchInTurnWithMatchData:data completionHandler:^(NSError *error)
{
if (error)
{
NSLog(@"%@", error);
}
else{
}
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |