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刪除元素spa
// 移除最後的一個對象 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);
注意:code
[remove和fastRemove的區別]orm
remove是從CCArray中徹底的移除對象,fastRemove只是將CCArray中對應的對象釋放,並無改變CCArray的結構。二者的區別就是在刪除元素以後,是否把數組以後的元素向前移動覆蓋掉以前位置的元素。對象
CCArray遍歷元素索引
使用CCARRAY_FOREACH()快速遍歷
遊戲