[ios]现场有被删除时不断变化的场景呢?

标签: sprite-kit ios Swift
发布时间: 2017/4/3 22:07:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

Sprite工具包中我正在做一个游戏,包括各级在不同场景中。我只是好奇,如果只过渡到一个场景将删除其他现场或将继续堆积,占用 cpu 使用率?我转换他们都在这种时尚。

let reveal = SKTransition.fade(with: UIColor.white, duration: 1.5)
let scene = level2(size: self.size)
self.view?.presentScene(scene, transition:reveal)

解决方法 1:

良好做法 #1

它通常是一个好的做法,同时你在内存中保持只有一个场景执行你的游戏。

良好做法 #2

另一个很好的做法避免强支护参考循环。具体地说,不应该存在你的场景与场景本身的强引用一个子代节点。

presentScene

这表示当您调用

 self.view?.presentScene(scene, transition:reveal)

强引用从 SKView 到现场被移除。所以,如果你尊重上面的 2 假设,现场将自动 deinitialized 并从内存中删除。

测试

您可以测试它自己。只是将它添加到你的游戏场景

deinit {
    print("GameScene deinit")
}

当 deinitialized 的实例时,会自动调用此方法。

现在运行

 self.view?.presentScene(scene, transition:reveal) 

寻找 "GameScene deinit" 记录到日志中。

官方微信
官方QQ群
31647020