gpt4 book ai didi

swift - 当我从一个节点切换到另一个节点时,是否应该删除所有 SKSpriteNodes 和标签

转载 作者:行者123 更新时间:2023-11-30 12:14:02 25 4
gpt4 key购买 nike

我的 iOS 游戏有几个场景。我注意到切换场景之间存在一些滞后,我想知道这是否可能是因为当我转换到另一个场景时我没有从父级中删除所有节点和标签。转换到另一个场景时从其父节点中删除所有节点是一个好习惯吗?

此外,我注意到,当我删除所有节点时,过渡效果会被破坏,因为屏幕在过渡期间会变成全黑。

过渡到下一个场景后是否可以删除(前一个场景的)节点?

最佳答案

当您执行转换时,场景及其节点将从内存中释放,除非您有 strong reference cycle 。另外,您应该知道 SpriteKit 对于 SKTexture 有自己的缓存系统,因此并非所有内存都会被释放。

延迟可能是由很多因素引起的,有一些可能性:

  1. 如果您在touchesEnded(或您的自定义按钮回调闭包)上实例化新场景,则可能会导致延迟,因为您在初始化方面做了太多工作。例如,可以通过在后台运行的闭包预加载场景来解决此问题,并且当您必须运行过渡时,您已经加载了所有内容。示例如下: enter image description here

  2. 也许您使用的资源太大,并且由于加载时间较长,因此会出现延迟。例如,您可以通过将不需要 Alpha channel 的图像转换为 .jpeg 来解决此问题。另一个解决方案是预加载 Assets 。下面是一个代码示例。 enter image description here

关于swift - 当我从一个节点切换到另一个节点时,是否应该删除所有 SKSpriteNodes 和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45646800/

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