2016-09-13 113 views
1

我正在做一个精灵套件游戏。我对Game Center有问题:我如何认证玩家? 在AppDelegate.swift我有这样的代码:SpriteKit游戏中心身份验证

 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) 

我怎样才能解决这个问题?

+2

您使用self.presentViewController相对于UIViewController中错误的地方self.presentViewController功能,所以写一个UIViewController – dragoneye

+0

这个问题里面的功能,我还没有一个UIViewController ...我有一个SpriteKit游戏无查看控制器....我只需要在启动时验证具有Game Center的播放器... – Swift1

回答

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

希望这有助于。

+0

我有一个无视图控制器的精灵套件游戏...我只需要与Game Center进行玩家验证...我需要一个窗口出现从精灵套件,让我的球员登录到游戏中心服务......有可能做到这一点? – Swift1

+1

我更新了我的答案。让我知道它是怎么回事 – crashoverride777

+0

我用你的代码,但现在我在控制台中得到这个警告'无法从gamed获取服务。请提供包括GameKit日志的雷达,以及任何游戏崩溃日志“游戏运行完美,但没有游戏中心认证...... – Swift1