zoukankan      html  css  js  c++  java
  • 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封装以提高效率。




  • 相关阅读:
    发布网站配置IIS(把网上找到的解决方法综合了一下)
    NPOI导出word,以及对table的一些设置
    NPOI导出Excel文件,对单元格的一些设置
    使用NPOI完成导出Excel文件
    KinderEditor编辑器使用
    无法解决“Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”与“Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”之间的冲突。正在随意选择“Newtonsoft.Jso
    将获得到的json赋值到下拉框
    loj #6247. 九个太阳
    死亡笔记
    Count On A Tree II.
  • 原文地址:https://www.cnblogs.com/new0801/p/6177213.html
Copyright © 2011-2022 走看看