Swift 2アプリでシーン/ビューコントローラの管理に問題があります。私のメインメニューから、ユーザーはタップしてゲームを始めることができます。これは素晴らしいことです。ユーザーの再生中にUIButtonを使用して途中で終了するか、または失ったときに自動的にメインメニューに戻ります。ビューコントローラ/シーンの切り替えを正しく処理する方法は?
問題は数回の再生、メインメニューへのリダイレクトなどの後に発生します。演奏中のFPSは大幅に低下します。これは、私が見落としているシーン管理の非効率性を示しています。
メインメニューは、2つの部分で構成されている再生状態のセグがあるストーリーボードです。基本的なUI要素を含むストーリーボードと、SpriteKit要素をストーリーボードの上にレンダリングするSKScene。戻るには、私はそう(SKScene内に含まれる)として、ユーザがメインメニューボタンに戻って、自動的にそれらを移動するための、いくつかの異なるコードに触れるたびための巻き戻しセグエを持っている:
func goHome()
{
self.viewController?.dismissViewControllerAnimated(true, completion: nil)
self.removeAllChildren()
self.removeFromParent()
}
ときにプレーをメインメニューのボタンをタップする、私はPlayViewControllerにつながるセグエを持っている、と私は)(PlayViewControllerさんのviewDidLoadで、次のしている:
override func viewDidLoad()
{
super.viewDidLoad()
scene = GameScene(size: view.bounds.size, controller: self)
skView = view as! SKView
skView.ignoresSiblingOrder = true
scene.scaleMode = .AspectFill
skView.showsFPS = true
skView.showsNodeCount = true
skView.presentScene(scene)
}
これは複雑な問題のビットであるので、私はで謝罪します私の説明がちょっと混乱していたら進んでください。しかし、誰かがパフォーマンスの問題を引き起こしていることについて何らかの光を当てることができたら、それはすばらしいでしょう。
ありがとうございます!
"問題は、数回の再生、メインメニューへのリダイレクトなどの後に発生します。" - 私にはメモリリークのように聞こえます。 Swiftは自動的に多くのことを行いますが、あなたの描画コードには何かがありますか? – bradkratky