-
Creator 版本:1.8.2
-
目标平台:Android
-
手机型号 :小米4
目标:希望保持在30帧以上
现状:正在做一个游戏,三国志10那样的,战斗场景无法保持在30帧以上,
测试使用了一场战斗的回放数据,不需要通过网络,
一般就只有20帧左右,当军队增援(一下子增加60几个军队,此时看到的只有10几个)和多个军队战斗(伤害飘字、战法使用、丢石头)时,帧数就只有几帧。
图片资源是用图集,头像是一个头像一张图的
战场的对象进行了分层,屏幕外的军队直接移除节点,进入屏幕看得见才添加节点;
添加节点(军队、伤害飘字等)时,添加时延迟添加,同一帧只添加一个;
去掉了原有的一些表现:
头像原素材是矩形要显示成圆形,本来用Mask,发现使用Mask帧数下降很多,所以先去掉了Mask,暂时就不显示成圆形了;
下方军队列表目标文字从右往左滚动本来用Mask,现在去掉了Mask;
军队小兵改成了只是用一个黑点表示;
发现
用Graphics画线掉帧很厉害,不知道是不是用的不对
var tNode = new cc.Node;
var tGraphics = tNode.addComponent(cc.Graphics);
增加了一个关闭一些战场表现的界面,选择关闭“去掉头像的线”后,感觉似乎好一些,帧数有十帧左右
PC上Google Chrome浏览器里能保持50帧以上,Draw call最高是290左右的
调试模式打包后,增援结束时Draw call是200左右,战斗时是260左右
游戏录像中是因为开了录屏大师,所以帧数才更低,不开录屏大师时,帧数一般在20帧以上,增援时会降到10几帧,战斗时才会降到只有几帧
测试过不表现,只跑逻辑,基本能保持有60帧,所以想到可能是表现导致的,去掉了一些表现后,表现已经算很少了,帧数有提高,不过还是比较低
参考了
【技术分享】2D MMO中角色动画的优化总结
http://forum.cocos.com/t/2d-mmo/46479

![]()
去掉了anim后,看起来没有变化,应该是我的游戏只是5个anim也就几k,和大神有30M的anim文件还是不同的
![]()
我的游戏战斗场景也只是用了一张图集,应该也没有必要去掉plist文件
好像好多游戏都是要针对自己项目去改底层,是否是应该去改改底层的渲染还是什么,修改底层的话应该从哪个代码开始入手,没有看过底层源码。
进行了各种尝试,还是无法保持在30帧以上,求助
.
.
.
2018年4月27日
PC上Google Chrome浏览器里能保持50帧以上,Draw call最高是290左右的
调试模式打包后,增援结束时Draw call是200左右,战斗时是260左右
游戏录像中是因为开了录屏大师,所以帧数才更低,不开录屏大师时,帧数一般在20帧以上,增援时会降到10几帧,战斗时才会降到只有几帧
.
.
.
2018年5月4日20:19:01
用了Adreno Profiler查了,合并了一些draw call
先隐藏了军队的头像和血量的数字,军队旗帜用了自动图集,去掉了战报后,
draw call降低了很多,从原来最高260降低到了100,
帧数没有提升不明显,最低还是只有几帧
增援后draw call只有60左右,24帧以上,
战斗时最高有100左右,10几帧




,等2.0看效果吧。。。