代码改变世界

[Cocos2d-x]CCSpriteBatchNode的使用

2013-12-14 12:23  hellenism  阅读(411)  评论(0编辑  收藏  举报

文档:

http://cocos2d.cocoachina.com/document/index/class?url=dd/d95/classcocos2d_1_1_c_c_sprite_batch_node.html

 

简单描述:

使用CCSpriteBatchNode可以提供程序的效率。因为它使用同一个纹理渲染多个精灵,在Open GL调用draw方法时,只需一次渲染就可以完成一批精灵的渲染。

 

使用场景:

当同一层需要很多相同纹理创建一堆精灵时,考虑使用CCSpriteBatchNode,从而提高程序效率。可以把多个样式放到一张图中,通过显示不同的区域达到显示具体纹理区域的效果

(没错,使用CCSprite也能完成需求。是使用CCSpriteBatchNode还是使用CCSprite,只是一个职业素养或者解决方案的选择而已)

 

注意:

这一批精灵使用同一纹理,并且加入到同一层中。

 

EX:

    //使用图片创建CCSpriteBatchNode对象
    CCSpriteBatchNode* batchNode = CCSpriteBatchNode::create("Icon-114.png", 10);
    addChild(batchNode);
    
    //使用CCSpriteBatchNode的纹理创建精灵
    m_pBody = CCSprite::createWithTexture(batchNode->getTexture());
    //把精灵添加到CCSpriteBatchNode层中
    batchNode->addChild(m_pBody);