最近在改编移植一款游戏directx 游戏
需要渲染上千个spritex 原游戏directx 渲染 每个sprite单独draw fps 都60 以上
我改用 cocos2dx fps 降到了20左右。
每个纹理很小,但是很多
GL Vertex 6000+
GL Call 15 明显纹理渲染优化了的
居然fps 还没有原来游戏高,
测试机型
原游戏 PC win7
改编游戏 android 小米2
当然pc 和mobile 有差异, 但是差异也太明显了
我在 vbox ubuntu 下linux 调试 fps 也是在20 左右。
所以我感觉不是机器的问题, 还是 cocos 性能原因
说下我的实现
由于原游戏 逻辑都在 我只用了 cocos2dx 做渲染 , action 什么的都没有用
一个gamelayer 每个frame update
先建立一个sprite pool
update 每次都 removeallchildren 然后从pool 取新的sprite 重新 set texture set scale set rotation setopacity 然后addchild to layer
我看了下源码 这要做应该不是很耗时, 唯一可能耗时的就是 每次要sort node 由于depth 一样 所以 这个快排不会很耗时
但是实际效果不理想
请教优化方案