SpriteKit,看似随机,降至40 FPS

bax*_*rma 9 performance frame-rate ios sprite-kit

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

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

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

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

提前致谢.

Sie*_*ike 0

我唯一能想到的为什么帧速率会大幅下降的原因是 HUD 的所有纹理是否尚未预渲染。因此,您可能会预渲染初始 HUD 和一些其他图像,但 HUD 在游戏中触发某些事件时会使用一些图像。