2018年4月25日星期三

CocosCreator多节点优化杂谈

无尽扫雷大多数功能都已做完,进行性能调优。本以为只要用了缓存池就不会存在过多问题,哪知道不卡只是桌面浏览器WebGL里的事情。
直接说结论,调试的血泪史就不扯淡了。
  • 预制首先还是要全部由NodePool进行缓存,缓存在加载场景时逐步加载。
  • 扫雷节点,替换资源时,直接用loadRes效率还是不足,把通用的spriteFrame缓存,改扫雷资源的时候直接等于上去会快很多
  • 尽量避免大规模js与原生层通信频率,1200多个节点一起setPosition在move事件不可取。要直接移动他们的父节点
  • 由于扫雷一共管理1200多个扫雷节点,如果只用NodePool还是有轻微卡顿,修改节点的parent还是需要一定时间的。如果能把要删除的节点直接改个资源换个坐标,效率比NodePool高。
  • label的非fnt字体,描边,节点的mask都会打断渲染批次。能不用就不用,不过这个对于扫雷这种素材不多的游戏来说都还好。直接用碎图然后用自动图集就可以自动合并渲染批次。
好了,差不多就这么些。通过这些细节处理,基本达到了流畅扫雷目的。至少在骁龙626上是这样。

没有评论:

发表评论