SpriteKit,看似随机,降至40 FPS

时间:2014-12-05 14:53:27

标签: ios performance sprite-kit frame-rate

我正在使用SpriteKit编写iOS游戏。在游戏过程中,显然是随机的,帧速率将从60 FPS降至40 FPS(总是40)。我在iPhone 6上运行它。在构建发布和调试时存在错误。

我通常一次在屏幕上有大约30个节点(有时更少),大多数节点都有物理主体,但是大约5个节点都将dynamic设置为NO。上述物理主体不会相互碰撞,但它们会与玩家节点发生碰撞。播放器节点没有快速移动,并且通常一次仅触摸大约5个节点。当玩家节点与其他一些物理实体接触时,他们的dynamic属性设置为YES。 值得一提的是,我有几个UIViewUIImageView覆盖SKView的顶部,充当HUD。

这让我觉得这不是一个特别密集的模拟。我已经完成了我的- update:方法,操作,联系人听众等,但没有找到可能导致此问题的任何内容。我花了最近几天在仪器(时间分析器),希望它可以解释这个问题,但再次,我没有找到任何跳出来的东西。但是,我承认自己对乐器很陌生。

现在,我无法再现这个错误。我只需要玩游戏,并希望遇到它。有时它会在场景加载(非常罕见),正常游戏过程中或根本不加载时发生。如果我暂停游戏(暂停视图和场景)并恢复它,帧速率会恢复。有时帧速率会在几秒钟后恢复正常。我完全不知道该怎么做。任何帮助将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我唯一可以想到的是,如果你的HUD的所有纹理都没有预先渲染,那么为什么你会有大幅度的帧速率下降。所以你可能有预渲染的初始HUD和其他一些图像,但是在游戏中触发某些事件时HUD会使用一些图像。