Cocos2dx 小技巧(五)常用巨集介紹

2021-07-22 08:23:16 字數 2006 閱讀 4354

在第四篇介紹委託時,cc_synthesize這個巨集出來show了一番後回去很是嘚瑟,於是他的兄弟姐妹們不幹了,憑什麼他能show而他們就不行?

為了公平起見,我趕緊也把其他的常用巨集也拉出來溜溜。

1、cc_synthesize(vartype, varname, funname):宣告乙個成員變數以及getfunname,setfunname函式.函式宣告和實現都有

這個直接用第四篇那些現成的。如下:

[cpp]view plain

copy

cc_synthesize(mydelegate*,delegator,delegator);//這一步不理解的看下面 

//原始碼: 

#define cc_synthesize(vartype, varname, funname)\  

protected: vartype varname;\    

public: virtual vartype get##funname(void) const \    

public: virtual

void set##funname(vartype var)    

看過原始碼後,我們把cc_synthesize(mydelegate*,delegator,delegator);帶進去試下,實際上與下面這幾條**是同樣的意思。

[cpp]view plain

copy

protected:    

mydelegate* delegate;    

public:    

virtual mydelegate* getdelegator(void) const ;    

virtual

void setdelegator(mydelegate* dele) ;   

2、cc_synthesize_pass_by_ref(vartype, varname, funname):類似cc_synthesize,不過getfunname返回的是引用。

3、cc_synthesize_readonly(vartype, varname, funname):宣告乙個成員變數以及getfunname函式,沒有set函式。getfunname已經實現,其實現就是返回這個值。其實看到readonly就知道它是唯讀的了。

4、cc_synthesize_readonly_pass_by_ref(vartype, varname, funname):類似cc_synthesize_readonly,不過getfunname返回的是引用

5、cc_property(vartype, varname, funname):宣告乙個成員變數以及getfunname,setfunname函式.函式實現要自己做

舉個例子介紹下:

[cpp]view plain

copy

//宣告

class helloworld : public cocos2d::layer  

//定義

int helloworld::gethp()  

void helloworld::sethp(int hp_int)    

6、cc_property_pass_by_ref(vartype, varname, funname):類似cc_property,,不過getfunname返回的是引用。

7、cc_property_readonly(vartype, varname, funname):又是乙個唯讀,宣告乙個成員變數以及getfunname函式,沒有set函式。getfunname函式的實現要自己做

8、cc_property_readonly_pass_by_ref(vartype, varname, funname):類似cc_property_readonly,不過getfunname返回的是引用。getfunname函式的實現要自己做

恩,就簡單介紹到這裡啦。嘿嘿。

Cocos2dx 小技巧(五)常用巨集介紹

話說前天是小公尺的公尺粉節,因為缺少個安卓機,打算搶個最新的紅公尺note來玩玩,誰知道note沒搶到,紅公尺倒是搶到了三颱。我這人品到底是好還是不好呢?在第四篇介紹委託時,cc synthesize這個巨集出來show了一番後回去很是嘚瑟,於是他的兄弟姐妹們不幹了,憑什麼他能show而他們就不行?...

COCOS2D X常用巨集

控制台輸出 define cclog 控制台警告輸出 define cclogwarn 控制台資訊輸出 define ccloginfo 交換 x,y的值 define cc swap x,y 生成乙個 1 到 1的隨機數 define ccrandom minus1 1 生成乙個 0 到 1的隨機...

Cocos2d x 常見巨集

1 ns cc begin cocos2d命名空間開始 2 ns cc end cocos2d命名空間結束 3 using ns cc 宣告cocos2d命名空間 4 cc synthesize readonly vartype,varname,funname 宣告乙個成員變數以及getfunnam...