我创建了一个简单的iPhone游戏,用户在失去游戏后被重定向到另一个视图,并且可以再次“重新开始”再次播放。
当游戏开始时它运行平稳并且大约有60 fps,问题在他失去游戏并再次出星时开始。
GameViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
if let scene = GameScene(fileNamed:"GameScene") {
/*
... some code ...
*/
scene.gameOverFunc = gameOverScreen
skView.presentScene(scene)
}
}
func gameOverScreen(){
let skView = self.view as! SKView
skView.presentScene(nil)
dispatch_async(dispatch_get_main_queue()){
self.performSegueWithIdentifier("gmov", sender: self)
}
}
GameScene.swift
func gameOver(){
/*
... some code ...
*/
if let gmovFunc = gameOverFunc {
gmovFunc()
}
}
override func update(currentTime: CFTimeInterval) {
gameOver()
}
我已经从“游戏结束”屏幕设置了一个segue到GameViewController。 每场新游戏后游戏的表现都会下降。 在离开“游戏结束”屏幕之前,我是否必须销毁SKScene的实例?
答案 0 :(得分:0)
从GameOver到GameViewController的segue将创建另一个实例。 ViewController和场景。因此,您的表现会下降。您需要unwind
segue而不是使用performSegue
创建ViewController的新实例。