[英]In spritekit I cant pop GameCenter view
我正在用Sprite Kit开发游戏,在我使用GameCenter
之前一切正常,这是我的代码
define the Gameviewcontroller:
var GameController:GameViewController = GameViewController()
当您触摸TouchecBegan
内部的节点时:
let touchLocation = (touches as NSSet).anyObject()?.locationInNode(self)
let targetNode = self.nodeAtPoint(touchLocation!)
if targetNode.name == "leader"{
print("hhhh")
GameController.showGamecenetr()
}
并且内部GameViewController
的代码ShowGameCenter
:
func showGamecenetr() {
print("jijijijji")
GameKitHelper.sharedInstance.showGKGameCenterViewController(self)
}
它应该弹出GameCenter
的视图,但显示错误:
无法将类型UIView
值转换为SubView
我发现这是一个非常简单的错误,但是我以前从未在这里遇到过,我也不知道如何处理它,有人可以帮我吗?
这是showGKGameCenterViewController()
中的代码
func showGKGameCenterViewController(viewController:UIViewController!){
if !gamecenterEnable {
print("No user!")
return
}
let gameCenterViewController = GKGameCenterViewController()
gameCenterViewController.gameCenterDelegate = self
gameCenterViewController.viewState = .Leaderboards
viewController.presentViewController(gameCenterViewController, animated: true, completion: nil)
}
帮助帮助;(
因此,我假设您对本地播放器/用户进行了身份验证。 要打开GameCenter
只需在您的场景中这样做即可
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
for touch in touches {
let location = touch.locationInNode(self)
let touchedNode = nodeAtPoint(location)
if targetNode.name == "leader"{
let gcViewController: GKGameCenterViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
gcViewController.leaderboardIdentifier = kLeaderboardID
gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
let vc: UIViewController = self.view!.window!.rootViewController!
vc.presentViewController(gcViewController, animated: true, completion: nil)
}
}
}
场景中的GKGameCenterControlleDelegate
class GameScene: SKScene, GKGameCenterControllerDelegate {
和
func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
AppDelegate().resumeBackgroundMusic()
gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.