我有一个"生活柜台"在我的游戏中,当它击中0 =死 - 我想离开场景到另一个UIView - 这是游戏视图 - 带有统计数据和一个按钮返回到主屏幕(第一个带按钮的UIViewController启动游戏等等。
以下是我如何进入Game Over view
的代码class GameScene: SKScene,SKPhysicsContactDelegate {
var viewController: UIViewController?
// more code and functions
// ......
func trackLife (lifeCHange: Int){
life = life + lifeCHange
lifeLabel.text = String(life)
if life < 1 {
// Go to Game Over VC
self.removeAllChildren()
self.removeAllActions()
self.scene?.removeFromParent()
self.viewController!.performSegueWithIdentifier("gameOverSegue", sender: viewController)
}
}
}
这适用于在视图中呈现游戏,但我认为我不会&#34;处理&#34;或重置场景。因为如果我在循环中这样做:
开始游戏 - &gt;游戏结束 - &gt;返回主屏幕 - &gt;开始游戏 - &gt;游戏结束....
我看到内存使用量在每个周期都在增长:)我想我只是添加场景但不删除它们?
对不起 - 我对此很新鲜。非常感谢您的体验!:)
答案 0 :(得分:2)
要在Sprite-Kit
中有效管理您的记忆,您应该为您的主屏幕上显示的GameOver屏幕创建另一个SKScene
。通过这种方式,旧的SKScene将被释放。