我怎样才能提高FPS?

时间:2015-05-06 08:06:54

标签: ios swift sprite-kit frame-rate

所以我在项目开始时遇到游戏延迟问题。因此,一旦你点击开始游戏,它开始以大约42-48 FPS运行,当你继续比赛时,它开始稳定并最终以大约58-59 FPS结束,这很好。所以我一直试图解决它,我已经尝试通过预加载我的纹理地图集,但它仍然无法正常工作。所以我运行时间分析器,看来这是我的问题:

这似乎是我的Update方法。我认为问题是,它必须与我的Plist文件。我从一个很长的文件加载我的所有对象。我尝试在一个更短的文件上运行该项目,它以60 FPS完美运行。有什么方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:2)

有几件事导致FPS初步下降。在游戏开始之前:

  1. 预加载纹理和纹理图集。
  2. 预加载您正在使用的任何声音。
  3. 预加载任何其他资源(plist,建筑地图等......)
  4. 一般情况下,您应该在允许游戏开始之前预先加载所有资产。

答案 1 :(得分:0)

您应该为游戏中的每个模式使用不同的部分。

在Mega Jump中,动态地随机加载不同的模式。这意味着,您可以为不同的模式使用不同的plist,并且当您上升时,您可以释放屏幕外内容并从随机plist中分配游戏的新部分。

始终动态加载内容(可能是异步),这样您就不会浪费内存加载屏幕内容,直到以后才会使用。

答案 2 :(得分:0)

  

所以我正在使用时间分析器来查看是什么让我的   FPS在开始时下降,我相信它是   我的更新方法中的这段代码:

请务必小心更新方法。每帧循环并处理许多节点可能会产生开销(在您发布的代码中,您将枚举两次!)。

尝试添加计数器并运行您经常发布的代码,看看它对您的FPS有何影响。例如,您可以选择每0.1秒而不是每1/60秒运行一次代码。

一般情况下,如果您不需要,请尽量避免以帧速运行代码。例如,您的游戏可以每秒60帧运行,但只要游戏玩法不受影响,您就可以拥有一个每0.1运行一次的游戏逻辑。这些是在设计游戏时要寻找的重要优化。

在您的说明中详细说明您的问题似乎也可能与未正确预加载资产有关。确保在开始游戏之前保留对SKTextures,字体,声音,动作的单一引用并将其加载到内存中。