继承关系

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封装以提高效率。

cocos2dx进阶学习之CCSpriteBatchNode的更多相关文章

  1. cocos2dx进阶学习之场景切换

    背景 在学习马里奥时,我们学习到从菜单场景到游戏场景的切换,代码如下 void CMMenuScene::OnStartCallBack( CCObject *pSender ) { CCDirect ...

  2. cocos2dx进阶学习之CCSprite

    继承关系 CCSprite -> CCNodeRGBA       ->   CCNode, CCRGBAProtocol CCTextureProtocol 从继承关系可以看出,CCSp ...

  3. cocos2dx进阶学习之CCScene

    继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...

  4. cocos2dx进阶学习之屏幕适配

    背景 在学习cocos2dx时,我们在main函数中发现一句代码, #include "main.h" #include "AppDelegate.h" #in ...

  5. cocos2dx进阶学习之CCEGLView

    继承关系 CCEGLView-> CCEGLViewProtocol CCEGLView是窗口,在不同平台上有不同的实现,而CCEGLViewProtocol是CCEGLView定义的接口,所以 ...

  6. cocos2dx进阶学习之CCAction

    CCAction在cocos2dx中,抽象了节点的动作.它由CCObject派生,因此它不是渲染节点. 它经常的用法是,创建一个action,然后让某个CCNode对象(一般是精灵),去执行它. 在马 ...

  7. cocos2dx进阶学习之瓦片地图编辑器

    之前学习了瓦片地图类,现在我们来学习下瓦片地图制作工具 这个是开源的工具,可以从网上下载,下面我们演示下怎么做地图 步骤1 将需要用到的图片放到一个目录下,比如我机器上就是d:\tiled,这些图片是 ...

  8. cocos2dx进阶学习之CCTMXLayer

    继承关系 CCTMXLayer -> CCSpriteBatchNode CCTMXLayer是在瓦片地图中,抽象一个层的类,它继承自CCSpriteBatchNode,也就是说它抽象了一批相同 ...

  9. cocos2dx进阶学习之CCTMXTiledMap

    继承关系 CCTMXTiledMap -> CCNode 它由CCNode派生,我们已经知道CCNode是cocos2dx的舞台对象的公共父类,所以CCTMXTiledMap也是个舞台对象 成员 ...

随机推荐

  1. Oracle 11g 的server结果缓存result_cache_mode

    对于常常要查的结果集,返回少量记录,server端是能够缓存的,结果集保存在共享池中,假设是绑定变量,绑定变量的值也要一样. SQL> show parameter result_cache N ...

  2. android 隐藏API 在源码下编译报错cannot find symbol symbol

    应该是我对android 不熟悉的缘故,今天使用源码编译了一个调用了隐藏api的应用程序始终报错: cannot find symbol symbol  : class IPackageInstall ...

  3. 前缀 树 背单词(Remember the Word,LA 3942)

    已哭瞎. 搞了2个多小时的错误居然是在  没有初始化............教训:每个例子一定要考虑到初始化问题.! 每个节点存了一个数组  该数组记录的有26个大小  0-25分别表示记录表示'a' ...

  4. CentOS下成功挂载xxxxxDVDx.iso并使用yum安装软件

    CentOS下成功挂载xxxxxDVDx.iso并使用yum安装软件 **不断尝试,终能到达彼岸** 测试环境为Win7 32位,VirtualBOx4.2.16+CentOS6.5,可分别到virt ...

  5. p95 3.5、3.8

    3.5  有一农夫带一条狼,一只羊和一筐菜欲从河的左岸乘船到右岸,但受下列条件限制:(1)船太小,农夫每次只能带一样东西过河:(2)如果没有农夫看管,则狼要吃羊,羊要吃菜.请设计一个过河方案,是的农夫 ...

  6. C++ const 限定符

    C++ const 限定符 作用:把一个对象转换成一个常量 用法:const type name = value; 性质:1. 定义时必须初始化,定义后不能被修改.2. 类中的const成员变量必须通 ...

  7. BestCoder Round #38

    1001 Four Inages Strategy 题意:给定空间的四个点,判断这四个点是否能形成正方形 思路:判断空间上4个点是否形成一个正方形方法有很多,这里给出一种方法,在p2,p3,p4中枚举 ...

  8. 【转】System.Data.OracleClient requires Oracle client software version 8.1.7 or greater

    安装完ASP.NET,Oracle9i客户端后,使用System.Data.OracleClient访问Oracle数据库如果出现这种错误:System.Data.OracleClient requi ...

  9. mysql 锁表查询及其处理

    1.show OPEN TABLES where In_use > 0; 2.show processlist; 3.kill thread_id; 其中 thread_id为processli ...

  10. 驱动之路四------adc驱动(input设备)

    开发板:smdk6410 开发环境:Linux 突然想起一点,写这些驱动,内核需要配成支持抢占才行. 前面的博客已经将其它的基本知识都解释了,这里也就不过多的阐述了,咱就直接写代码吧 这次写的是adc ...