蓝鸥iOS培训推荐:前段时间曾整理过一篇有关Cocos2d-x节点与渲染树的内容,那么今天要和大家分享的东西还真是有点相似及接近呢!我们今天要学的是Cocos2d-x利用CCSpriteBatchNode提高渲染效率是怎样实现的?有兴趣的同学们可以作为参考资料学习一下!

那么费话少说,直接进入到介绍界面,先前给大家介绍过的cocos2d-x的有关内容,都看到过左下角曾出现过的FPS就成了3行,而且还多了两行的数据。

最上面一行是指的当前场景的渲染批次,大家也可以理解为是需要渲染多少个贴图出来(中间一行是渲染每一帧需要的时间,最下行就是大家熟悉的FPS)。

下面讲的是CCSpriteBatchNode介绍:

1、首先要讲的下渲染批次(比较重要的优化指标):指的是一次渲染凋用。意思就是渲染的次数越少,游戏的运行效率越高。

2、CCSpriteBatchNode就是cocos2d-x为了降低渲染批次而建立的一个专门管理精灵的类。

举个例子说明一下:

1、使用CCSprite创建1000个Icon.png到场景中,这样渲染批次就是1000,在这里先不考虑其它的精灵们。

iOS开发之Cocos2d-x——CCSpriteBatchNode介绍(提高渲染效率)_第1张图片

从上面的图中可以看到,创建1000个Icon到场景中,这样使FPS是22,渲染批次是1000次。

2、使用CCSpriteBatchNode批量渲染,一次渲染就把所有的CCSprite绘制出来。大大降低渲染批次。

举个例子说明一下:

1、用CCSprite创建1000个Icon.png到场景中,不过在这里利用了CCSpriteBatchNode批量渲染。这时的渲染批次、那么FPS又会是什么样呢?

iOS开发之Cocos2d-x——CCSpriteBatchNode介绍(提高渲染效率)_第2张图片

那么看下面的图,就是输出的结果:

iOS开发之Cocos2d-x——CCSpriteBatchNode介绍(提高渲染效率)_第3张图片

由此可以看出创建了1000个Icon到场景中,这是的FPS是39.9,渲染批次是1次。

那么大家一定要注意以下几点:

1、CCSpriteBatchNode::create(constchar*fileImage);//利用贴图创建,默认子节点数量29。CCSpriteBatchNode*batchNode=CCSpriteBatchNode::create(constchar*fileImage,unsignedintcapacity);//利用贴图创建,并指定子节点数量。

2、在使用CCSpriteBatchNode的时候,所用到的贴图一定要是同一张图片,而且不能指定精灵的深度。所有的精灵都必须在同一渲染层。

3、但是在项目中不可能一直是在一张贴图上,因此可以将好几张贴图合成一张大图。那么就要用合成后的大贴图创建一个CCSpriteBatchNode。最后创建CCSprite的时候,再设置贴图区域就ok了。

那么基本也也就这么多了,不知道我这样说,大家是不是能够理解的了呢?如果有不明白的问题可以随时问我,很高兴希望能够帮助到大家。作为21世纪的青年,一定要有进步的心态。