【问题标题】:SpriteKit scene with low fps on startSpriteKit 场景开始时帧数较低
【发布时间】:2020-04-21 19:51:03
【问题描述】:

我的问题是我的 GameScene 以大约两倍的节点开始,并在几秒钟内绘制计数和 40 fps。这个问题只出现在我的 iPad(迷你视网膜)上,而在我的 iPhone (5) 上,游戏从一开始就运行顺利,尽管节点仍然比它应该的要多得多

【问题讨论】:

  • 您需要发布代码才能让人们帮助您解决问题。
  • 嗯,问题是我无法弄清楚代码的哪一部分可以生成比场景中更多的精灵。我的意思是,我的游戏场景平均有 25 个节点和 12-13 次平局,但一开始它有 40-45 个节点和 25 次平局。在 iPhone 上它会很快恢复正常,而在 iPad 上它甚至在所有游戏时间都保持 40 fps
  • 你的问题是当你开始游戏的时候,你贴出和游戏开始有关的代码

标签: swift sprite-kit


【解决方案1】:

这个 40fps 问题是 iOS 框架中的一个问题。它是由某种节流(由 iOS)创建的。

也许这种限制旨在为难以维持 60fps 的应用提供更一致的体验。但没人知道。

Apple 从未对此发表评论。

它在 iOS 9 的 Scene Kit、Sprite Kit 和 Metal 中变得普遍。但也曾在 OpenGL ES 锁定项目中看到。

但是,在以前的 iOS 版本中也注意到了这一点。特别是在使用 CADisplayLink 的应用程序/游戏中。

//不要担心那些要求代码的人,你的假设是正确的,你的代码与你的代码无关。

以下是对 Scene Kit 中类似问题(可能来自同一路径原因)的更深入检查:Inconsistent SceneKit framerate

【讨论】:

  • 感谢您的回答,我尝试删除在 didMoveToView 方法中调用的 SKActions 但问题仍然存在,有什么办法可以解决吗?
  • 你能从外部来源证明这一点吗?由于硬件甚至框架,我从未遇到过任何节流问题。很可能,代码只是写得不好,并且正在做的事情占用超过 1/60 秒。 (请记住,更新循环中发生了很多你无法控制的事情,所以你只想在其中做最少的事情)
  • @Knight0fDragon 如果您已经看到这个问题,您就会知道它是什么,并且模板文件的内容最少且无需额外代码。如果您还没有看到它,请认为自己有福了。
  • @carlb 可能不会。除了等待Apple承认它然后修复它。我会在这里链接一些:stackoverflow.com/questions/27318579/…
  • @Knight0fDragon 我在更新函数中没有代码
【解决方案2】:

在开始时也遇到了低 FPS 的问题(同时使用 spritekit 和 uikit 时) 我将 xib 与 SKView 一起使用,对我来说,解决方案是在“属性检查器”中向场景添加依赖项 如下图所示:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 2016-10-04
    • 1970-01-01
    • 2018-08-26
    • 2015-01-25
    相关资源
    最近更新 更多