Ken*_*del 3 gamekit ios game-center sprite-kit swift
现在我正试图让我创建的排行榜显示出来.玩家的身份验证很好,但是当游戏中心窗口打开时,这很奇怪.这是一张图片:

这是我用来显示此图像的代码:
override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {
self.showLeaderboard()
}
func showLeaderboard() {
var leaderView = UIViewController()
var leaderViewController = GKGameCenterViewController(rootViewController: leaderView)
leaderViewController.viewState = GKGameCenterViewControllerState.Leaderboards
leaderViewController.leaderboardIdentifier = "High_Score_Board"
self.showViewController(leaderViewController, sender: self)
//self.presentViewController(leaderViewController, animated: true, completion: nil)
}
func leaderboardViewControllerDidFinish(controller: GKGameCenterViewController){
controller.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
所有这些都在我的GameViewController中.此外,即使这样可行,我如何在SKScenes中访问此方法?谢谢您的帮助!
导入GameKit:
import GameKit
Run Code Online (Sandbox Code Playgroud)
确保GKGameCenterControllerDelegate在您的班级中添加委托.
class ViewController: UIViewController, GKGameCenterControllerDelegate {
...
}
Run Code Online (Sandbox Code Playgroud)
该委托需要一种方法,当玩家点击"完成"按钮时调用该方法.
func gameCenterViewControllerDidFinish(gcViewController: GKGameCenterViewController!)
{
self.dismissViewControllerAnimated(true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
这是包含显示排行榜所需代码的功能:
func showLeaderboard() {
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"
self.showViewController(gcViewController, sender: self)
self.navigationController?.pushViewController(gcViewController, animated: true)
// self.presentViewController(gcViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)
您现在可以showLeaderboard通过按下按钮来打电话:
@IBAction func buttonShowLeaderboard(sender: AnyObject) {
showLeaderboard()
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1543 次 |
| 最近记录: |