【发布时间】:2013-02-06 04:05:28
【问题描述】:
我在使用 Game Center 时遇到了最奇怪的行为。
我正在与GKTurnBasedMatch 和朋友进行回合制比赛。本地播放器的身份验证完美运行。使用GKTurnBasedMatch 类方法loadMatchesWithCompletionHandler: 似乎明智地返回GKTurnBasedMatch 对象。为了发起新的比赛并邀请 Game Center 好友,我使用标准的GKTurnBasedMatchmakerViewController。
当我使用GKTurnBasedMatchmakerViewController 创建匹配项时,当showExistingMatches 属性为YES 时,它们会显示在那里,供游戏创建者使用。
但是,如果我使用GKTurnBasedMatchmakerViewController 邀请其他玩家,接收玩家永远不会收到邀请。没有 Game Center 推送通知,也没有(除了一次或两次,偶尔)GKTurnBasedMatchmakerViewController 中带有“已邀请”标题的游戏。
奇怪的是,如果发起用户随后通过邀请结束他们创建的游戏,该玩家将收到“游戏结束”游戏中心通知。
使用loadMatchesWithCompletionHandler:,返回的matches 对邀请玩家有意义(正确participants 中的playerID 值,正确GKTurnBasedParticipantStatus 上participants 的值),但什么都没有显示为被邀请的玩家。
我在使用两台不同的设备,两台设备肯定都登录到了 Game Center 的沙盒模式,并且一切都在 iTunes Connect 等中设置好了。两个 Game Center 帐户都设置为接受邀请。
有人见过这样的吗?
【问题讨论】:
-
你订阅
GKTurnBasedEventHandlerDelegate了吗?我不确定这是否是您的问题,因为我认为委托消息是从 GameCenter 应用程序本身发起的。只是另一个需要注意的边缘案例。 -
好建议。我的问题一直是在处理任何事情之前。游戏中心本身的推送通知没有出现,这很奇怪。我想我已经解决了这个问题(见答案)。现在的工作是确保他们来时得到
GKTurnBasedEventHandlerDelegate和其他人的妥善处理。
标签: ios objective-c cocoa game-center gamekit