4

感谢 iOS 6 中 GameKit API 的更新,我终于能够以应有的方式实现我的回合制棋盘游戏,包括回合超时和更好的程序化比赛创建。但是,我遇到了一个似乎无法解决的问题。我的愿望是让最终用户完全看不到 Game Center 的运行,这样一切都可以编程并使用我自己的自定义界面。

因此,我使用自己的自定义表格视图来显示匹配项,而不是默认的GKTurnBasedMatchmakerViewController. 现在,使用该-loadMatchesWithCompletionHandler:方法显示公开比赛没有问题。我还使用自定义屏幕来创建匹配,直接创建自动匹配(不是问题)和加载 localPlayer 的 Game Center 好友以进行邀请的表格视图。由于playersToInvite现在可以用 playerID 填充属性,这在 iOS 6 中是可能的。

我的主要问题是处理接收方的邀请。假设我邀请 Bob 在两人比赛中玩我的游戏。现在,我似乎无法在 Bob 端找到新邀请的通知。唯一会-handleTurnEvent:调用现有匹配项或触摸横幅通知(我不能保证用户会这样做),-handleInviteFromGameCenter:在这种情况下对我没有任何作用。

我想出的检测新邀请并因此更新我的自定义游戏视图控制器的唯一方法是调用该-loadMatchesWithCompletionHandler:方法并检查受邀参与者的 lastTurnDate 为 nil 的新匹配以及现有的公开匹配数组。我大约每 10 秒在后台运行一次此检查,因为我找不到在GKTurnBasedEventHandler收到新邀请时调用的通知。请帮忙!

编辑:最后,我刚刚实现了一个下拉刷新功能。没有实现轮询或其他一些只会浪费用户手机数据的方法是没有办法的,所以我认为按需刷新是最理想的解决方案。

4

1 回答 1

0

请参阅:GKInvite参考,更具体地说是邀请处理程序。

你只需要注册一个inviteHandler,它将在Bob 在GK/GC 中接受邀请后被调用。

T。

于 2012-10-15T00:52:26.217 回答