2

我在 GameKit 上工作了一段时间。几乎一切正常。我有一个主要问题是session:peer:didChangeState:恢复后没有调用方法。

在 Apple 示例 GKRocket 中,如果应用程序暂停(willTerminate)并在它返回时设置(willResume),则会话被破坏。对于我的应用程序,保持会话正常运行会很好。

在日志中我可以看到,session:peer:didChangeState:当应用程序挂起时,状态为 GKPeerStateUnavailable 被调用,但在使用 GKPeerStateAvailable 恢复调用后不会出现。会话可用。但即使是新客户也找不到该设备。

我使用 SessionModes 服务器/客户端。

在此先感谢您的帮助!

4

1 回答 1

0

前段时间我在玩会话,但有一些建议......

- 恢复后,如果您尝试从休眠的设备发送打包到唤醒的设备会发生什么?它通过了吗?

- 你需要 GKPeerStateUnavailable / available 吗?根据我的经验,您只需要使用 applicationDidBecomeActive 和 applicationWillResignActive 方法:睡觉时发送 GAME_PAUSED 到其他设备,醒来时发送 GAME_UNPAUSED。如果用户让应用程序进入睡眠状态然后关闭它——好吧,运气不好,其他玩家将永远坐在那里(所以你可以给他一个退出到主菜单的选项)。这种方法适用于苹果(在批准方面) - 在两个应用程序上进行了测试。问候!

于 2011-11-15T12:41:34.417 回答