温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode

发布时间:2021-11-11 09:25:33 来源:亿速云 阅读:286 作者:柒染 栏目:游戏开发

怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

我们今天要学的是Cocos2d-x利用CCSpriteBatchNode提高渲染效率是怎样实现的?

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

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

下面讲的是CCSpriteBatchNode介绍:

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

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

举个例子说明一下:

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

怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode

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

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

举个例子说明一下:

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

怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode

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

怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode

由此可以看出创建了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了。

看完上述内容,你们掌握怎么理解iOS开发中Cocos2d-x的CCSpriteBatchNode的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI