【发布时间】:2014-06-16 08:39:17
【问题描述】:
我正在使用以下代码暂停我的 SKScene:
self.paused = YES;
但是,根据Andrey Gordeev 的answer,也可以使用此行暂停场景:
self.view.paused = YES;
我想了解调用其中一个(或两个)来暂停场景会有什么不同。
【问题讨论】:
标签: ios objective-c sprite-kit skscene skview
我正在使用以下代码暂停我的 SKScene:
self.paused = YES;
但是,根据Andrey Gordeev 的answer,也可以使用此行暂停场景:
self.view.paused = YES;
我想了解调用其中一个(或两个)来暂停场景会有什么不同。
【问题讨论】:
标签: ios objective-c sprite-kit skscene skview
效果是一样的。您仍然在场景中拥有 paused 属性,因为它是 SKNode 的子类,并且可能需要在转换期间暂停场景,通过控制在转换期间是否暂停场景的 SKView 设置或手动暂停。
我敢打赌,暂停视图也可以“冻结”当前正在运行的过渡,这是唯一不能通过单独暂停场景来暂停的事情。
因此暂停视图也可能暂停所有内部计时器和绘图调用,因此暂停视图可能更好地节省电池,尽管这是基于 cocos2d 如何处理暂停的导演与暂停场景的猜测。
【讨论】:
update:方法计算效果不一样
暂停SKView 停止为SKScene 调用update: 方法。
暂停SKScene 不会这样做。
我通常会同时暂停SKScene 和SKView
编辑:
从iOS9 起暂停场景将暂停update: 方法。
【讨论】:
update:方法在场景暂停时不会执行。您可以为未来的读者对此进行编辑。另一部分(关于 SKView)当然是正确的,我想这永远不会改变:)
SpriteKit :)