Setter 以及 Getter 是在將類別封裝時常使用的方式, 但針對每個變數實作Setter & Getter既繁瑣又麻煩, 所幸Cocos2dX 有實做出一組 Macro 可供開發者使用。
CC_SYNTHESIZE – 同時宣告Setter & Getter
- 第一個參數為變數類型, ex. int, double, class …
- 第二個參數為變數的local名稱, 不會直接使用到。
- 第三個參數為getter & setter的函式名稱
- 會在User 類別中, 宣告一個private 的 string email, public 的 getEmail(), setEmail(string)函式
- 會在User 類別中, 宣告一個private 的 string email, public 的 getEmail(), setEmail(string)函式
其他Macro用法
- CC_PROPERTY_PASS_BY_REF(int, m_energy, Energy);
- CC_PROPERTY_READONLY(int, m_energy, Energy);
- CC_PROPERTY_READONLY_PASS_BY_REF(int, m_energy, Energy);
- CC_SYNTHESIZE(cocos2d::CCObject*, m_weapon, Weapon);
- CC_SYNTHESIZE_PASS_BY_REF(cocos2d::CCObject*, m_weapon, Weapon);
- CC_SYNTHESIZE_READONLY(cocos2d::CCObject*, m_weapon, Weapon);
- CC_SYNTHESIZE_READONLY_PASS_BY_REF(cocos2d::CCObject*, m_weapon, Weapon);
- CC_SYNTHESIZE_RETAIN(cocos2d::CCObject*, m_weapon, Weapon);
筆者: 這相當好用啊, 如果有早知道就好了…
最後, 我們有個關於 Cocos2d-x 的Facebook社團, 如果有任何疑難問題, 歡迎到社團發問。
Cocos2dx Taiwan 開發者社團
探索更多來自 懶泥陳的閱讀書房 的內容
訂閱後即可透過電子郵件收到最新文章。