在SpriteKit中显示Game Center排行榜

5
我正在开发一款游戏,希望能得到帮助或者代码,以便在用户点击按钮时在我的应用程序中显示GameCenter排行榜。由于所有其他答案似乎都是针对Obj-C的,因此我不知道从哪里开始。谢谢!
编辑:下面的答案完美地解决了问题,但是对于那些想知道如何在SpriteKit中实现这一点的人,只需将以下方法添加到GameViewController中,并添加一个Notification Center观察者即可。
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showLeaderboard", name: "showLeaderboard", object: nil)

在你的SKScene类中,只需调用该观察者即可。
NSNotificationCenter.defaultCenter().postNotificationName("showLeaderboard", object: nil)

这里提供一些帮助,供那些有疑问的人参考!

2个回答

1

在您的类中包含 GKGameCenterControllerDelegate 协议。

class ViewController: UIViewController, GKGameCenterControllerDelegate

这个方法在“完成”被点击时关闭游戏中心视图:
func gameCenterViewControllerDidFinish(gcViewController: GKGameCenterViewController!) {
    self.dismissViewControllerAnimated(true, completion: nil)
}

这个函数包含了显示排行榜所需的代码:

func showLeaderboard() {

    // declare the Game Center viewController
    var gcViewController: GKGameCenterViewController = GKGameCenterViewController()
    gcViewController.gameCenterDelegate = self

    gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards

    // Remember to replace "Best Score" with your Leaderboard ID (which you have created in iTunes Connect)
    gcViewController.leaderboardIdentifier = "Best_Score"
    // Finally present the Game Center ViewController
    self.showViewController(gcViewController, sender: self)
    self.navigationController?.pushViewController(gcViewController, animated: true)
    self.presentViewController(gcViewController, animated: true, completion: nil)
}

现在,您可以通过按下UIButton来触发showLeaderboard函数:
@IBAction func buttonShowLeaderboard(sender: AnyObject) {
    showLeaderboard()
}

1

我已经按照@CeceXX所说的方式实现了,但是是的,这看起来也可以工作,谢谢分享! - Chris Gilardi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接