【问题标题】:GameCenter - log player outGameCenter - 注销玩家
【发布时间】:2011-08-31 05:26:40
【问题描述】:

我有一个 iPhone 游戏,我刚刚添加了 GameCenter 支持,一切似乎都运行良好。但是,作为不使用 GameCenter 的人,我添加了一个选项,以便用户可以将其关闭。唯一的问题是,一旦 GKLocalPlayer 登录到 GameCenter,我就看不到将它们注销的方法——这意味着如果用户登录,然后禁用 GameCenter 支持,我的应用程序将不会使用它,但是每次我的应用程序返回前台时,GK 库仍会重新登录用户,直到应用程序终止。我不希望这样的事情发生!

有没有办法让本地玩家退出 GameCenter,或者至少阻止 GK 框架在每次您的应用激活时让您重新登录?

【问题讨论】:

  • 你可以尝试设置localPlayer.authenticateHandler = nil;
  • authenticateHandler 不能为 nil。

标签: iphone ios sdk game-center


【解决方案1】:

无法从应用内退出游戏中心。最好的解决方案是添加一个布尔标志来指示用户的登录状态:

BOOL gameCenterOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"gameCenterOn"];

默认为 YES,如果用户在您的应用中选择退出游戏中心,只需将其设置为 NO。

在处理任何游戏中心请求之前,您还必须检查该标志的值。 (包括应用委托中的[GKLocalPlayer localPlayer] authenticateWithCompletionHandler: 调用。)

【讨论】:

  • 是的,这基本上就是我已经在做的事情了。问题是,一旦您登录,GK 似乎会在您的应用程序丢失然后重新获得前台状态时自动重新验证本地播放器,我找不到告诉它不要这样做的方法。因此,如果用户登录 GK,然后决定要禁用它,我的应用程序将不再与 GameCenter 对话,但每当他们从其他地方切换回我的应用程序时,GK 仍会在玩家背后重新进行身份验证。它不会破坏任何东西,但会不必要地耗尽人们宝贵的 3G 带宽! (我是 OP)
  • 为什么要让人们在你的应用中禁用游戏中心?如果他们有 Game Center 帐户,为什么不使用它?如果他们不想使用,他们可以随时在 Game Center 应用程序中退出。有人登录游戏中心但不想在您的应用程序中使用它的情况是什么?围绕预期行为进行编码是一个很好的警告信号。
  • 我有一个游戏中心帐户,但我不使用它,因为很多应用程序真的很糟糕在连接断开时不会崩溃/做奇怪的事情。这意味着某些其他游戏每次激活时都会不断要求我登录 GameCenter,这非常烦人。
  • 很快就发布了上面的评论——它只是一个选项,说“不要纠缠我关于 GC,不管我是否登录”,我希望 mroe 游戏有。
  • 应用程序将(可以)要求您仅登录 3 次。
猜你喜欢
  • 2013-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
相关资源
最近更新 更多