[初探Cocos2d-x]之CCArray

CCArray是一个数据结构类,它对游戏存储数组型数据做了优化。在使用Cocosd-x开发游戏的过程中CCArray使用频繁。

CCArray的创建

// 创建一个数组
static CCArray* create();

// 使用一些对象创建数组,末尾加NULL标识
static CCArray* create(CCObject* pObject, ...);

// 使用一个对象创建数组
static CCArray* createWithObject(CCObject* pObject);

// 创建一个指定大小的数组
static CCArray* createWithCapacity(unsigned int capacity);

// 使用一个现有的数组,创建出一个新数组
static CCArray* createWithArray(CCArray* otherArray);

CCArray添加元素

// 插入一个元素
void addObject(CCObject* object);

// 插入另外一个数组里面的全部对象
void addObjectsFormArray(CCArray* otherArray);

// 在一个索引位置添加一个对象
void insertObject(CCObject* object, unsigned int index);

CCArray删除元素

// 移除最后的一个对象     
void removeLastObject(bool bReleaseObj = true);     

// 移除一个确定的对象      
void removeObject(CCObject* object, bool bReleaseObj = true);     

// 移除一个确定索引位置的元素
void removeObjectAtIndex(unsigned int index, bool bReleaseObj = true);     

// 移除全部元素
void removeObjectsInArray(CCArray* otherArray);  

// 移除所有对象
void removeAllObjects();    

// 快速移除一个对象
void fastRemoveObject(CCObject* object);    

// 快速移除一个确定索引位置的对象
void fastRemoveObjectAtIndex(unsigned int index);

注意:

    [remove和fastRemove的区别]

remove是从CCArray中完全的移除对象,fastRemove只是将CCArray中对应的对象释放,并没有改变CCArray的结构。两者的区别就是在删除元素之后,是否把数组之后的元素向前移动覆盖掉之前位置的元素。

CCArray遍历元素

    使用CCARRAY_FOREACH()快速遍历





你可能感兴趣的:([初探Cocos2d-x]之CCArray)