cocos2dx进阶学习之CCSpriteBatchNode

继承关系

CCSpriteBatchNode -> CCNode, CCTextureProtocol


成员变量

inline CCTextureAtlas* getTextureAtlas(void)

inline void setTextureAtlas(CCTextureAtlas* textureAtlas) 

获取/设置纹理图集,纹理图集是管理一张大图纹理和区域信息结构体


static CCSpriteBatchNode* createWithTexture(CCTexture2D* tex, unsigned int capacity);

static CCSpriteBatchNode* createWithTexture(CCTexture2D* tex) ;

static CCSpriteBatchNode* create(const char* fileImage, unsigned int capacity);

static CCSpriteBatchNode* create(const char* fileImage)

创建一个CCSpriteBatchNode对象


bool initWithTexture(CCTexture2D *tex, unsigned int capacity);

bool initWithFile(const char* fileImage, unsigned int capacity);

bool init();

初始化CCSpriteBatchNode对象


void increaseAtlasCapacity();

扩容


void removeChildAtIndex(unsigned int index, bool doCleanup);

删除一个精灵


void insertChild(CCSprite *child, unsigned int index);

void appendChild(CCSprite* sprite);

增加精灵


void removeSpriteFromAtlas(CCSprite *sprite);

将精灵从贴图集中删除


unsigned int rebuildIndexInOrder(CCSprite *parent, unsigned int index);

重构子节点索引


unsigned int highestAtlasIndexInChild(CCSprite *sprite);

unsigned int lowestAtlasIndexInChild(CCSprite *sprite);

unsigned int atlasIndexForChild(CCSprite *sprite, int z);

取得精灵对应的z轴下标


virtual CCTexture2D* getTexture(void);

virtual void setTexture(CCTexture2D *texture);

获取/设置纹理


virtual void setBlendFunc(ccBlendFunc blendFunc);

virtual ccBlendFunc getBlendFunc(void);

设置/获取混合函数


virtual void visit(void);

访问,重画节点


virtual void addChild(CCNode * child);

virtual void addChild(CCNode * child, int zOrder);

virtual void addChild(CCNode * child, int zOrder, int tag);

增加子精灵


virtual void reorderChild(CCNode * child, int zOrder);

virtual void removeChild(CCNode* child, bool cleanup);

virtual void removeAllChildrenWithCleanup(bool cleanup);

删除子精灵


virtual void sortAllChildren();

对精灵排序


virtual void draw(void);

绘制

总结

CCSpriteBatchNode是对一批相同纹理的精灵的封装,通过CCSpriteBatchNode封装之后,能提高渲染效率。

在实际工作中,精灵很多,而且很多精灵都是一样的,比如在飞机大战中,所有的子弹都是一样的,那么子弹就可以用CCSpriteBatchNode封装以提高效率。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

尹成

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值