在游戏中心显示特定排行榜?
Display Specific Leaderboard in Game Center?
在我的 iOS9 项目中,我总共有 8 个与 Game Center 关联的排行榜。我可以加载所有排行榜的列表(这对于我的应用程序的另一部分非常有用);但是,我还希望能够加载一个特定的排行榜。这是我使用的代码:
@IBAction func showLeaderboard() {
if savedSettings["difficulty"] == 0 {
print("Easy")
if savedSettings["gameLanguage"] == 0 {
leaderboardID = "Colorific_English_High_Scores"
print("english")
} else if savedSettings["gameLanguage"] == 1 {
leaderboardID = "Colorific_Spanish_High_Scores"
} else {
leaderboardID = "Colorific_French_High_Scores"
}
} else {
if savedSettings["gameLanguage"] == 0 {
leaderboardID = "Colorific_English_High_Scores_Hard"
} else if savedSettings["gameLanguage"] == 1 {
leaderboardID = "Colorific_Spanish_High_Scores_Hard"
} else {
leaderboardID = "Colorific_French_High_Scores_Hard"
}
}
let gcVC: GKGameCenterViewController = GKGameCenterViewController()
gcVC.leaderboardIdentifier = leaderboardID
gcVC.gameCenterDelegate = self
gcVC.viewState = GKGameCenterViewControllerState.Leaderboards
self.presentViewController(gcVC, animated: true, completion: nil)
}
不幸的是,更新 leaderboardIdentifier 似乎没有效果。所有排行榜的列表似乎总是出现。事实上...即使将 viewState 更改为 GKGameCenterViewControllerState.Achievements 似乎也没有效果!它总是进入排行榜列表:(
提前感谢您的帮助! :)
我知道这是很久以前发布的,但我在我的项目中遇到了同样的问题。
您的代码没有问题,问题是 iOS9 的一个错误,Apple 官方论坛上有一个帖子与其他人的投诉:https://forums.developer.apple.com/thread/15997。
他们都有显示特定排行榜的相同问题,但是苹果没有官方答复。
我在 iOS8 的设备上尝试了我的游戏,显示特定排行榜没有问题。所以现在,没有什么可做的,直到 Apple 解决这个问题(已经快一年了)。我还建议使用 Apple bug reporter,这样他们就能注意到这个问题。
iOS10更新:
iOS 10 显示特定排行榜没有问题。看起来它仍然是 iOS9 的问题。
在我的 iOS9 项目中,我总共有 8 个与 Game Center 关联的排行榜。我可以加载所有排行榜的列表(这对于我的应用程序的另一部分非常有用);但是,我还希望能够加载一个特定的排行榜。这是我使用的代码:
@IBAction func showLeaderboard() {
if savedSettings["difficulty"] == 0 {
print("Easy")
if savedSettings["gameLanguage"] == 0 {
leaderboardID = "Colorific_English_High_Scores"
print("english")
} else if savedSettings["gameLanguage"] == 1 {
leaderboardID = "Colorific_Spanish_High_Scores"
} else {
leaderboardID = "Colorific_French_High_Scores"
}
} else {
if savedSettings["gameLanguage"] == 0 {
leaderboardID = "Colorific_English_High_Scores_Hard"
} else if savedSettings["gameLanguage"] == 1 {
leaderboardID = "Colorific_Spanish_High_Scores_Hard"
} else {
leaderboardID = "Colorific_French_High_Scores_Hard"
}
}
let gcVC: GKGameCenterViewController = GKGameCenterViewController()
gcVC.leaderboardIdentifier = leaderboardID
gcVC.gameCenterDelegate = self
gcVC.viewState = GKGameCenterViewControllerState.Leaderboards
self.presentViewController(gcVC, animated: true, completion: nil)
}
不幸的是,更新 leaderboardIdentifier 似乎没有效果。所有排行榜的列表似乎总是出现。事实上...即使将 viewState 更改为 GKGameCenterViewControllerState.Achievements 似乎也没有效果!它总是进入排行榜列表:(
提前感谢您的帮助! :)
我知道这是很久以前发布的,但我在我的项目中遇到了同样的问题。
您的代码没有问题,问题是 iOS9 的一个错误,Apple 官方论坛上有一个帖子与其他人的投诉:https://forums.developer.apple.com/thread/15997。 他们都有显示特定排行榜的相同问题,但是苹果没有官方答复。
我在 iOS8 的设备上尝试了我的游戏,显示特定排行榜没有问题。所以现在,没有什么可做的,直到 Apple 解决这个问题(已经快一年了)。我还建议使用 Apple bug reporter,这样他们就能注意到这个问题。
iOS10更新:
iOS 10 显示特定排行榜没有问题。看起来它仍然是 iOS9 的问题。