gpt4 book ai didi

ios - 为什么在第 4 次运行我的 spritekit 场景后我有很大的滞后?

转载 作者:行者123 更新时间:2023-11-28 11:04:23 25 4
gpt4 key购买 nike

我正在开发一款同时使用 ViewController 和 SpriteKit 场景的 spritekit 游戏。基本上,应用程序的结构是您打开一个菜单( View Controller ),通过按一下按钮,它会以模式方式将您转到加载 GameScene (skscene) 的游戏( View Controller )。

当你输掉比赛时,你会通过模态转场被发送到游戏结束屏幕( View Controller ):gameVC?.performSegueWithIdentifier("goToGameOver", sender: gameVC) 这个转场在GameScene,scene.gameVC = self 在游戏 View Controller 中。 gameVC 在 GameScene 中被初始化为 var gameVC: UIViewController?。在游戏结束屏幕中,您可以返回菜单或使用按钮初始化的模式转场再次玩游戏(返回游戏 View Controller )。

当您进入 GameScene 超过四次时,就会出现问题。第五次打开 GameScene(从菜单 vc 或从游戏结束 vc)时,游戏延迟得令人难以置信。屏幕右下角的 fps 计数器显示游戏产生 1.5 fps。

我认为问题是 GameViewController 和 GameScene 没有被正确关闭(每次应用程序移动到 GameScene 时应用程序的内存使用量都会增加),但我不知道如何正确关闭它们。我用过

self.removeFromParent()
self.view?.presentScene(nil)

作为一种尝试在 GameOver 代码运行之前和之后关闭 GameScene 的方法,但无济于事。我也想到了 unwind segue,但我无法放松到我还没有去过的 View Controller (游戏结束)。我完全没有想法,这是一个破坏游戏的错误。我真的很感激一些帮助。非常感谢。

最佳答案

您基本上是在做您在 SpriteKit 中不应该做的事情。不建议在 SpriteKit 中使用多个 View Controller 。

最好只有 1 个 View Controller 和多个场景(菜单场景、游戏场景)。

你应该阅读这个问题。

Swift: How to handle view controllers for my game

关于ios - 为什么在第 4 次运行我的 spritekit 场景后我有很大的滞后?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39107236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com