【问题标题】:iOS & SpriteKit - low fps after restarting the gameiOS 和 SpriteKit - 重新启动游戏后 fps 低
【发布时间】:2015-12-02 19:13:03
【问题描述】:

我创建了一个简单的 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()
    }

我设置了从“游戏结束”屏幕到 GameViewController 的转场。 每次新游戏后游戏性能都会下降。 在离开“游戏结束”屏幕之前,我是否必须销毁 SKScene 的实例或其他东西?

【问题讨论】:

标签: ios iphone sprite-kit skscene


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-02
  • 1970-01-01
相关资源
最近更新 更多