2

如果我有一个支持 Game Center 的应用程序,并且我想提供成就以完成作为应用程序内购买出售的拼图包,我如何将因应用内购买而收费的 iTunes 帐户与游戏同步进行购买的中心用户帐户?据我了解,它们是在两个不同位置访问的两个独立用户帐户(Game Center 帐户在 Game Center 应用程序中访问,iTunes 帐户在设置应用程序中访问)。

我该如何避免这种情况发生...

  1. Game Center Player1 登录,运行我的应用程序并购买拼图包
  2. Game Center Player1 退出,Game Center Player2 登录,运行我的应用程序并玩完 Player1 购买的拼图包,然后 Player2 获得成就。
  3. Game Center Player2 退出,Game Center Player1 登录后发现自己购买的拼图包已经完成,因此 Player1 无法获得同样的成就。

我是否误解了这些用户帐户的工作方式?如果没有,有没有办法在玩家登录和退出我的游戏时将 Game Center 帐户与 iTunes 帐户同步?有没有办法解决这个问题?对于任何销售内容的多人游戏来说,这似乎是一个相当普遍的问题。

非常感谢!

4

4 回答 4

2

这是个好问题。:) 就成就而言,我想您可以使用登录的 GKPlayer 中的 playerId 将它们存储在设备上,一旦登录玩家的成就完成,您就会与 Game Center 同步。

至于同步 iTunes 和 Game Center 帐户,我真的不知道。通常,您会在设备上存储一些关于是否已进行购买的信息(即可用功能)。使用该功能(或被允许使用它)应该依赖于设备,而不是依赖于 GC 用户,这是否合乎逻辑?但是,如果有人使用他们的帐户一次又一次地将您的内容下载到他们朋友的设备上,会发生什么?

嗯...我希望其他人能分享他们对此的想法。但我发现 Game Center 问题的浏览量和回答率都非常低 :(

于 2010-10-25T20:29:53.213 回答
2

所以这就是我将如何做到这一点,它实际上是一个相当简单的方法。我将使用核心数据在本地跟踪用户购买拼图包的进度,因为它可以快速启动和运行。每次有新的 GC 用户登录时,我都会创建一个新的用户对象并跟踪他们在拼图包中的进度,并在需要时报告 GC 中的成就。当那个 GC 用户稍后登录时,我将调整拼图包的状态以匹配它们在核心数据中定义的当前进度。这样,任何 iTunes 帐户都可以购买拼图包,并且任何使用该设备的人都可以使用它们。每当任何 GC 用户登录 GC 并玩我的应用程序时,他们都可以访问相同的购买的拼图包,

如果设备上没有安装 GC,我可以禁用所有 GC 功能并启动应用程序,因为只有一个默认播放器。

做起来应该很简单。

于 2010-10-26T01:15:36.357 回答
0

我也在尝试提出解决此问题的解决方案。如果使用服务器产品交付方式,问题可以得到很大的解决。应用程序将购买的物品发送到服务器;服务器在检查凭据后将物品交付给应用程序。有一些极端的情况我还是不知道怎么解决,基本上是处理整个流程中断的情况,这取决于IAP的实现。仍然不是 100% 确定。

于 2010-10-25T21:02:31.307 回答
0

您能否在手机上记录特定用户购买了哪些成就,然后检查哪个用户在打开或禁用购买的内容 - 您必须有一种方法来跟踪不同玩家的进度(我可以看到用户可能没有登录到 GC 等的潜在问题等)。我还没有这样做,我正在为我的下一场比赛做计划。

于 2011-02-23T08:41:37.473 回答