iOS& SpriteKit - 重启游戏后的低fps

时间:2015-12-02 19:13:03

标签: ios iphone sprite-kit skscene

我创建了一个简单的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的实例?

1 个答案:

答案 0 :(得分:0)

从GameOver到GameViewController的segue将创建另一个实例。 ViewController和场景。因此,您的表现会下降。您需要unwind segue而不是使用performSegue创建ViewController的新实例。