Easy-Game-Center Sprite-Kit 集成

Easy-Game-Center Sprite-Kit Integration

我正在尝试在我的游戏中使用来自 GitHub 的 DaRkD0G 的 Easy-Game-Center(swift 精灵工具包)。但是,调用 EasyGameCenter.Swift 时(使用

        EasyGameCenter.sharedInstance(self)

在我的游戏场景中) 我收到一条错误消息 "Cannot convert value of type 'GameScene' to expected argument type 'UIViewController'"。在过去的几天里,我尝试在 EasyGameCenter 中更改不同的 class 类型,但总能得到答案。有人有什么建议吗?

从未使用过该库,但如消息所述:

"Cannot convert value of type 'GameScene' to expected argument type 'UIViewController'"

这是您调用的方法:

 class func sharedInstance(delegate:UIViewController)-> EasyGameCenter {
        if Static.instance == nil {
            dispatch_once(&Static.onceToken) {
                Static.instance = EasyGameCenter()
                Static.delegate = delegate
                Static.instance!.loginPlayerToGameCenter()
            }
        }
        return Static.instance!
    }

您必须传递 UIViewController 作为参数而不是 GameScene。

我是这个项目的创建者。

没有UIViewController就无法使用Apple的Game Center!

Framework Game Center 需要 UIViewController 才能工作,这是 Game Center Apple 的官方文档。

而 Easy Game Center 需要创建委托 UIViewController 才能完美工作,没有它就无法使用 Game Center

示例项目 Game Center + Sprite Kit : http://www.raywenderlich.com/60980/game-center-tutorial-how-to-make-a-simple-multiplayer-game-with-sprite-kit-part-1

使用 UIViewController 创建实例:

这是为了创建 EasyGameCenter 的实例

override func viewDidLoad() {
    super.viewDidLoad()

    EasyGameCenter.sharedInstance(self)

}

添加这个,如果你改变 UIViewController 通知视图控制器委托被改变,它是可选的,如果你不改变 UIViewController 你不需要这个方法

override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        EasyGameCenter.delegate = self
    }

就这样,现在你可以用CocoaPods导入项目了

pod 'EasyGameCenter', :git => 'https://github.com/DaRkD0G/Easy-Game-Center-Swift.git'