cocos2d-x渲染优化

左下角显示fps的意思是:第一行代表渲染多少次(感觉是调用了多少次draw),次数越少越好,第二行代表每渲染一次花费的时间,时间越少越好,第三行代表者每秒显示的频率,越大越好。

如果直接创建sprite::create(文件名),如果使用同一个文件创建2个sprite,那么会渲染2次。这样不好,如果想减少渲染次数,可以用SpriteBatchNode。

SpriteBatchNode的使用方法是:先创建一个SpriteBatchNode,参数为一个素材图片,然后将这个SpriteBatchNode加到layer上,然后使用这个素材图片创建无数个sprite,加到SpriteBatchNode上,位置是针对layer的。无论增加多少sprite,渲染次数都为1。

如果需要渲染不止一个素材图片的时候,可以先把素材图片通过zwoptex做成一个素材图片和一个plist,然后使用把plist加入SpriteFrameCache缓存中,然后使用这个合成后的素材图片创建一个SpriteBatchNode,然后再用SpriteFrameCache的getSpriteFrameByName方法,参数为原始图片的名字,得到一个动画帧,然后将动画帧创建成sprite即可,这样可以使用无数个素材图片绘制无数个sprite,渲染次数都为1。

如果渲染不止一个合成图片的时候,可以将多个合成图片组成一个大的合成图片,但是这样会导致游戏的包很大,所以最好不要这样,而是,在一个layer上加上多个SpriteBatchNode,每个SpriteBatchNode对应一个合同图片,不过这样的话,渲染次数就不是1了,而是有几个SpriteBatchNode,渲染次数就是几。