gpt4 book ai didi

ios - 更改场景时是否必须删除场景?

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

在 sprite-kit 中,我正在制作一款包含不同场景中不同级别的游戏。我很好奇如果只是过渡到一个场景会删除另一个场景,还是它们会继续堆积并占用 CPU 使用率?我正在以这种方式转换它们。

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

最佳答案

最佳实践 #1

在执行游戏时,在内存中只保留一个场景通常是一种很好的做法。

最佳实践 #2

另一个好的做法是避免强保留引用循环。特别是不应存在场景的后代节点,并强烈引用场景本身。

当前场景

那是在你调用的时候说的

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

SKView 到场景的强引用被移除。因此,如果您遵守上述 2 个假设,场景将自动取消初始化并从内存中删除。

测试

你可以自己测试一下。只需将其添加到您的游戏场景中即可

deinit {
print("GameScene deinit")
}

该方法在实例取消初始化时自动调用。

现在运行

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

并在日志中查找 "GameScene deinit"

关于ios - 更改场景时是否必须删除场景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584333/

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