2016-09-13 112 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