2

我正在为 iOS 制作一个带有游戏中心的回合制游戏,每场比赛有 2 名参与者。我想对每一回合实施时间限制,这样玩家就不必永远等待另一个玩家完成回合。我努力了:

currentMatch endTurnWithNextParticipants:[[NSArray alloc] initWithObjects:nextParticipant,nil] turnTimeout:GKTurnTimeoutDefault matchData:data completionHandler:^(NSError *error) 

但是什么也没有发生,玩家仍然需要永远轮到他们,所以我显然在这里遗漏了一些东西。

达到时间限制时会发生什么?如何gamecenter处理这个,我应该在哪里处理这个?

4

1 回答 1

1

该方法为当前比赛更新存储在 Game Center 上的数据。

根据苹果文档:

如果下一个要行动的玩家没有在指定的时间间隔内轮到他们,则数组中的下一个玩家会收到要行动的通知。这个过程一直持续到玩家轮到或通知列表中的最后一个玩家。调用此方法时,它会创建一个新的后台任务来处理请求。然后该方法将控制权返回给您的游戏。稍后,当任务完成时,Game Kit 会调用您的完成处理程序。请记住,完成处理程序可能会在与最初用于调用该方法的线程不同的线程上调用。这意味着您的代码块中的代码需要是线程安全的。

我认为您还需要以编程方式结束玩家。

于 2013-09-04T14:00:29.963 回答