5

我正在开发一款游戏,我正在寻找帮助或代码以在用户单击按钮时在我的应用程序中显示 GameCenter 排行榜。我不知道从哪里开始,因为所有其他答案似乎都是针对 Obj-C,谢谢!

编辑:下面的答案完美无缺,但对于那些想知道如何在 SpriteKit 中执行此操作的人,只需将以下方法添加到GameViewController并添加通知中心观察者

NSNotificationCenter.defaultCenter().addObserver(self, selector: "showLeaderboard", name: "showLeaderboard", object: nil)

在您的SKScene班级中,只需调用该观察者即可。

NSNotificationCenter.defaultCenter().postNotificationName("showLeaderboard", object: nil)

只是为了帮助那些想知道的人!

4

2 回答 2

1

在您的课程中包含GKGameCenterControllerDelegate协议。

class ViewController: UIViewController, GKGameCenterControllerDelegate

当点击“完成”时,此方法会关闭 Game Center 视图:

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)
}

您现在可以showLeaderboard通过按 a来触发该功能UIButton

@IBAction func buttonShowLeaderboard(sender: AnyObject) {
    showLeaderboard()
}
于 2015-06-26T17:55:28.567 回答
1

你可以像 CeceXX 展示的那样做,或者你可以使用 DaRkD0G 的 Easy-Game-Center 来简化它。https://github.com/DaRkD0G/Easy-Game-Center-Swift

于 2015-06-26T18:33:53.120 回答