在 SpriteKit 中显示 Game Center 排行榜
Posted
技术标签:
【中文标题】在 SpriteKit 中显示 Game Center 排行榜【英文标题】:Displaying a Game Center Leaderboard in SpriteKit 【发布时间】:2015-06-26 17:52:25 【问题描述】:我正在开发一款游戏,我正在寻找帮助或代码,以便在用户单击按钮时在我的应用中显示 GameCenter 排行榜。我不知道从哪里开始,因为所有其他答案似乎都是针对 Obj-C,谢谢!
编辑:
下面的答案完美无缺,但对于那些想知道如何在 SpriteKit 中执行此操作的人,只需将以下方法添加到 GameViewController
并添加通知中心观察者
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showLeaderboard", name: "showLeaderboard", object: nil)
在您的 SKScene
类中,只需调用该观察者即可。
NSNotificationCenter.defaultCenter().postNotificationName("showLeaderboard", object: nil)
只是为了帮助那些想知道的人!
【问题讨论】:
【参考方案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)
您现在可以通过按UIButton
来触发函数showLeaderboard
:
@IBAction func buttonShowLeaderboard(sender: AnyObject)
showLeaderboard()
【讨论】:
【参考方案2】:你可以像 CeceXX 展示的那样做,或者你可以使用 DaRkD0G 的 Easy-Game-Center 来简化它。 https://github.com/DaRkD0G/Easy-Game-Center-Swift
【讨论】:
我已经按照@CeceXX 所说的方式实现了它,但是是的,这看起来也可以,谢谢分享!以上是关于在 SpriteKit 中显示 Game Center 排行榜的主要内容,如果未能解决你的问题,请参考以下文章