SpriteKit 游戏中心认证
Posted
技术标签:
【中文标题】SpriteKit 游戏中心认证【英文标题】:SpriteKit Game Center Authentication 【发布时间】:2016-09-13 23:33:28 【问题描述】:我正在做一个精灵套件游戏。我对 Game Center 有疑问:我如何验证玩家身份? 在 AppDelegate.swift 我有这个代码:
func authenticateLocalPlayer()
var localPlayer = getLocalPlayer() // see GKLocalPlayerHack.h
localPlayer.authenticateHandler =
(viewController : NSViewController?, error : NSError?) -> Void in
if viewController != nil
self.presentViewController(viewController!, animated:true, completion: nil)
但我收到此错误:
Value of type 'AppDelegate' has no member 'presentViewController'
在这一行:
self.presentViewController(viewController!, animated:true, completion: nil)
我该如何解决这个问题?
【问题讨论】:
你在错误的地方使用 self.presentViewController 相对于 UIViewController 的 self.presentViewController 函数,所以在 UIViewController 中编写你的函数 问题是我没有 UIViewController……我有一个没有视图控制器的 SpriteKit 游戏……我只需要在启动时使用 Game Center 对玩家进行身份验证…… 【参考方案1】:我认为你需要使用这样的东西。我不能 100% 确定您为 parentWindow 位设置了什么,我的 OSX 知识有限。
let dialogController = GKDialogController.shared()
dialogController.parentWindow = yourWindow // not exactly sure what you need to set here
dialogController.presentViewController(viewController)
Implementing GameKit.framework on OSX, cannot authenticate localPlayer
https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/GameKit_Guide/DisplayingGameCenterUserInterfaceElements/DisplayingGameCenterUserInterfaceElements.html
希望这会有所帮助。
【讨论】:
我有一个没有视图控制器的 sprite kit 游戏...我只需要通过 Game Center 进行玩家身份验证...我需要从 sprite kit 中出现一个窗口并让我的玩家登录到 Game Center 服务。 ..有可能这样做吗? 我使用了您的代码,但现在我在控制台中收到警告“无法从游戏中获取服务。请归档包含 GameKit 日志和任何游戏崩溃日志的雷达,游戏运行完美但没有游戏中心身份验证... 我也收到了警告:与名为 com.apple.gamed.osx 的服务的连接已失效。 对不起,我的答案是基于我发布的链接。我对 OSX 的了解几乎为零。 谢谢,我升级到 Xcode 8 并将我的代码转换为 Swift 3.0 语法...现在身份验证工作!【参考方案2】:我建议使用视图控制器 ;-) 看我这里的回答我就不一一复制了。
Adding Game Center Leaderboard
【讨论】:
以上是关于SpriteKit 游戏中心认证的主要内容,如果未能解决你的问题,请参考以下文章
暂停 SpriteKit 游戏 - UIApplicationWillResignActive 与 UIApplicationDidBecomeActive?