iOS和SpriteKit - 重新启动游戏后的低fps
问题描述:
我已经创建了一个简单的iPhone游戏,用户在丢失游戏后重定向到另一个视图,并可以“再次开始”再次播放。iOS和SpriteKit - 重新启动游戏后的低fps
当游戏开始时它运行平稳,它有大约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的实例?
答
从GameOver到GameViewController的segue将创建另一个实例。 ViewController和场景。因此你的表现会下降。您需要unwind
segue,而不是使用performSegue
创建ViewController的新实例。
+0
这里是说明本教程:HTTP:// www.raywenderlich.com/113394/storyboards-tutorial-in-ios-9-part-2 – Stefan
这可能是对你有意思:http://stackoverflow.com/questions/34052659/memory-increase-in-spritekit-even-though-removeallchildren-called – Stefan