cocos2dx 學習代碼記錄

看一個連連看的代碼。裏面有一些不熟悉的地方,須要查看,隨手記錄下。備忘dom

1 CREATE_FUNC宏函數

在代碼裏常常看到使用這個宏: CREATE_FUNC(BaseLayer);spa

 1 /**
 2  * define a create function for a specific type, such as CCLayer
 3  * @__TYPE__ class type to add create(), such as CCLayer
 4  */
 5 #define CREATE_FUNC(__TYPE__) \
 6 static __TYPE__* create() \
 7 { \
 8     __TYPE__ *pRet = new __TYPE__(); \
 9     if (pRet && pRet->init()) \
10     { \
11         pRet->autorelease(); \
12         return pRet; \
13     } \
14     else \
15     { \
16         delete pRet; \
17         pRet = NULL; \
18         return NULL; \
19     } \
20 }

註釋中寫的很明確,爲一個相似CCLayer類的特定的類增長一個create函數.咱們也能夠看到在宏的下面定義了一個create()函數返回的類型就是宏帶入的參數__TYPE__指針類型.那create函數裏作了什麼呢?它執行了類的構造函數,執行了init()初始化函數,最後又設置建立出的對象爲自動釋放內存.這樣其餘人在使用這個類的時候,只要是用create()函數建立出來的對象就不用費心去管理釋放內存了.指針

屬於二段構建模式:參考http://www.ityran.com/archives/2020code

 

2 cocos2d-x中隨機函數對象

2.1   CCRANDOM_0_1()   [0,1]blog

1 int num1=CCRANDOM_0_1()*35; //[0,35]

2.2  arc4random() 內存

1 nt num=arc4random()%36;//[0,35]

可是CCRANDOM_0_1()每次請求到的數值都是同樣的。而arc4random() 每次的都不同。ci

相關文章
相關標籤/搜索