【问题标题】:Significant fps drops when unpausing the view in Spritekit在 Spritekit 中取消暂停视图时 fps 显着下降
【发布时间】:2015-07-17 08:20:10
【问题描述】:

在 SpriteKit 中取消暂停视图时,我注意到 fps 显着下降(帧率下降 5-10fps 之间)。我用空项目(Spritekit 游戏模板)尝试了这个。代码如下:

if(!self.view.paused){
        self.view.paused = YES;
        NSLog(@"Paused");
    }else{
        NSLog(@"Unpaused");
        self.view.paused = NO;
    }

如果我暂停场景,一切都会按预期运行,并且帧数稳定在 60fps。我正在设备上对此进行测试。

if(!self.paused){
        self.paused = YES;
        NSLog(@"Paused");
    }else{
        NSLog(@"Unpaused");
        self.paused = NO;
    }

这可能会在取消暂停时导致游戏出现问题,因为某些帧会被跳过...有什么想法吗?

【问题讨论】:

    标签: sprite-kit frame-rate skscene skview


    【解决方案1】:

    我假设它在取消暂停后暂时下降?或者在取消暂停后它总是低fps。这只发生在 iOS 8 或 iOS 9 上。你能试试 iOS 9 吗?我确信这可能会发生,因为在取消暂停后,Sprite-Kit 需要稍微“预热”渲染周期。您可以尝试在仪器中进行分析,看看发生了什么。

    至于解决方案,您可以尝试在取消暂停后暂时降低您的SKPhysicsWorldspeed,这样物理就不会跳跃,因为 Sprite Kit 具有可变的时间步长,不幸的是无法更改。如果是跳跃的动作,你可以尝试降低SKScenespeed。理想情况下,您应该两者都做。

    此外,如果您只需要担心动作,您可以尝试只暂停您的场景而不是您的 SKView(但请记住您的更新方法将运行)。或者尝试暂时暂停您的场景,然后在取消暂停 SKView 后取消暂停。

    除此之外,除了尝试为丢帧做准备之外,您实际上没有什么可以解决的。如果您还没有,请务必向 Apple 报告。

    下面是所有这些属性的类参考。

    SKView-暂停

    如果值为 YES,则场景的内容固定在屏幕上。无操作 被执行并且不执行物理模拟。

    SKScene - 速度

    默认值为 1.0,这意味着所有操作都以它们的速度运行 正常的速度。如果您设置不同的速度,时间似乎跑得更快 对于在节点及其后代上执行的所有操作,或更慢。 例如,如果您将速度值设置为 2.0,则动作运行两次 快。

    SKScene - 暂停

    如果值为 YES,则跳过该节点(及其所有后代) 当场景处理动作时。

    SKPhysicsWorld - 速度

    默认值为1.0,表示模拟正常运行 速度。默认值以外的值会更改时间的速率 通过物理模拟。例如,速度值为 2.0 表示物理模拟中的时间流逝速度是 场景的模拟时间。值 0.0 暂停物理 模拟。

    【讨论】:

    • 我正在 iOS 8 上进行测试...这是暂时发生的,fps 在一秒或更短的时间内变得稳定...是的,暂停场景并使用额外的 BOOL 属性时我得到了很好的结果控制更新:执行。我没有尝试过的事情是玩(物理世界的)速度属性......我会尝试那个,让你知道结果......
    • 不,据我所知没有区别。请注意,即使是空项目也会发生这种情况,而不仅仅是在游戏中(使用动作的地方)。我想我可以为此装满雷达以防万一。我想这与 Spritekit 的“热身”“引擎”有关:) 在取消暂停您所说的视图时。至少暂停场景按预期工作。感谢您的回答。
    • @Whirlwind 啊,这太糟糕了。我稍后会尝试测试,看看是否可以提出不同的解决方案。我也可以尝试在 iOS 9 上运行,如果他们修复了我会通知你。
    • 如果你这样做就好了。谢谢!
    猜你喜欢
    • 2016-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2015-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-24
    相关资源
    最近更新 更多