1

Я делаю комплект спрайтов. У меня проблема с Game Center: как я аутентифицирую игрока? в AppDelegate.swift у меня есть этот код:SpriteKit Game Center Authentication

 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 при неправильном функции место self.presentViewController относительно UIViewController так написать функцию внутри UIViewController – dragoneye

+0

Проблема заключается в том, что я не в UIViewController ... У меня есть SpriteKit игры без view Controllers .... Мне нужно только аутентифицировать Player с 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 ... Мне нужно, чтобы появилось окно из комплекта спрайтов и позвольте моему игроку войти в сервис Game Center ... это можно сделать? – Swift1

+1

Я обновил свой ответ. Дайте мне знать, как это происходит. – crashoverride777

+0

Я использовал ваш код, но теперь я получаю это предупреждение в консоли «Не удалось получить услуги от gamed. Пожалуйста, зарегистрируйте радар, включая журналы GameKit, и в любых игральных журналах с ошибками «игра работает отлично, но нет аутентификации в игровом центре ... – Swift1

0

Я предлагаю использовать viewcontroller ;-) Взгляните на мой ответ здесь, я не буду копировать его один в один.

Adding Game Center Leaderboard