小滿(bill man)個人原創,歡迎轉載,轉載請註明地址,小滿(bill man)的專欄地址http://blog.csdn.net/bill_man
在寫cocos2d-x遊戲樣本的時候,如果發現一些在初探筆記中的遺漏之處,我會隨時補充上來,今天補充的就是cocos2d-x中帶有的vector----CCMutableArray,我很推薦在cocos2d-x引擎中不使用vector,而是直接使用CCMutableArray,因為它的記憶體管理方式和cocos2d-x很接近,更方便我們使用,剩下的部分,它也是支援template的,和vector一樣。我們首先來看一下建立方法
CCMutableArray<AstarItem*>* path = new CCMutableArray<AstarItem*>();
我們可以使用自己建立的類作為template,這裡是我準備寫遊戲樣本的A星演算法中準備用到的部分,我使用了自己的template-----AstarItem(我會在遊戲樣本中解釋這個例子)
以下是這個類常用的一些方法:
path->addObject(temp1);//添加一個對象,添加到最尾部
path->containsObject(temp);//數組中是否包含這個元素
path->copy();//複製這個數組
path->count();//數組中的元素個數
path->getIndexOfObject(temp1);//獲得數組的索引
path->getLastObject();//獲得最後一個對象
path->getObjectAtIndex(i);//根據索引獲得相應的對象
path->insertObjectAtIndex(close->getObjectAtIndex((path->getObjectAtIndex(0))->getfid()),0);//在索引位置插入一個元素
CCMutableArray也可以使用Iterator,例子如下。
同樣的cocos2d-x還提供了一個數組的使用就是CCArray,其使用方法和Array類似,初始化方法如下
CCArray* sprites = CCArray::arrayWithCapacity(totalToAdd);
當然還有其他的使用方法,這裡就不再贅述了。
這裡在解釋一下CCMutableDictionary,他是一個索引值對,這個類型在地圖中獲得屬性的時候比較常用,這樣我們就可以獲得相應的索引值對,第一個類型是我們可以自訂的,我們這裡定義為string類型的,而另外一種類型就必須是CCString *類型的,當然,這個類型被獲得後我們可以轉換為各種類型。
如有錯誤之處,希望大家多多指正