我正在做一个基于回合的游戏...传输的唯一信息是玩家的分数以及是否已发送回合。游戏中心成果发布
当下一个玩家收到回合。数据被存储到“scoreToBeat”并且turnSent = 1。玩家然后轮到他们。之后游戏结束被称为turnSent = 1。我使用了Ray Wenderlich的基于回合的教程http://www.raywenderlich.com/5480/beginning-turn-based-gaming-with-ios-5-part-1。
在他的情况下,游戏结束,并且是一条领带。像这样...我似乎无法让它显示失去的人。
for (GKTurnBasedParticipant *part in currentMatch.participants) {
part.matchOutcome = GKTurnBasedMatchOutcomeTied;
}
我似乎无法让它显示失去它的人总是表现出胜利。这是我许多人的最新尝试......在比赛btw中恰好有2名球员......任何想法都将不胜感激。
for (GKTurnBasedParticipant *part in currentMatch.participants) {
if(part==currentMatch.currentParticipant)
{
if(points>scoreToBeat)
{
part.matchOutcome=GKTurnBasedMatchOutcomeWon;
}
else {
part.matchOutcome=GKTurnBasedMatchOutcomeLost;
}
}
else {
if(points>scoreToBeat)
{
part.matchOutcome=GKTurnBasedMatchOutcomeLost;
}
else {
part.matchOutcome=GKTurnBasedMatchOutcomeWon;
}
}
我已经把NSLog的无处不在...它通过逻辑正确,例如说玩家应该输。在这部分之后,我不会对匹配数据做任何事情...只需使用[currentMatch endMatchInTurnWithMatchData:data completionHandler:^(NSError * error){ 如果(error){ NSLog(@“%@”,error) ; } }];也许这就是问题所在。 –
所以,为了确保在结束比赛之前调用给定的方法?因为每位球员在比赛结束前都应该有比赛结果。你也许可以尝试为每个玩家设置matchOutcome为GKTurnBasedMatchOutcomeLost,然后看看它是否有效(如果它不是真的很奇怪)。至于我的应用程序,我将结果设置为GKTurnBasedMatchOutcomeTied,因为我使用用于显示游戏的自定义表格视图,所以游戏结果只是使用matchData在本地计算/决定。 –