原创 [C++]實現委託模型

作者:Zplutor  出處:http://www.cnblogs.com/zplutor/  我對.Net的委託模型印象很深刻,使用委託,可以快速實現觀察者模式,免去寫很多繁雜重複的代碼。遺憾的是,C++並沒有提供這樣的模型,爲了達到

原创 創建圖片動畫

創建動畫的步驟一般有3步: (1)創建一組CCSpriteFrame對象,每張動畫圖片爲一個CCSpriteFrame對象。 (2)用這組CCSpriteFrame對象創建一個CCAnimation對象,該對象包含了動畫所需的一些配置信息

原创 內聯函數與宏

內聯函數 內聯函數是指那些定義在類體內的成員函數,即該函數的函數體放在類體內。 定義 內聯函數從源代碼層看,有函數的結構,而在編譯後,卻不具備函數的性質。內聯函數不是在調用時發生控制轉移,而是在編譯時將函數體嵌入在每一個調用處。

原创 觀察者模式

觀察者模式工具類——CCNotificationCenter. 函數: 1.addObserver(訂閱消息) addObserver(CCObject* target,  //要訂閱消息的主體 SEL_CallFuncO selecto

原创 Cocos2d-x設計模式發掘之二:二段構建模式

乍一看標題,大家可能會覺得很奇怪,神馬是“二段構建模式”呢? 所謂二段構建,就是指創建對象時不是直接通過構建函數來分配內存並完成初始化操作。取而代之的是,構造函數只負責分配內存,而初始化的工作則由一些名爲initXXX的成員方法來完成

原创 關於operator const char *() const的問題

如果是重載*的話,那應該寫成:const char operator * () const而不是樓主所寫的那樣,而且即使是這樣寫那也不正確的,因爲運算符重載中有幾個運算符的返回值是有格式的(約定),如operator * 在重載時通常返

原创 指針和引用的區別

從概念上講。指針從本質上講就是存放變量地址的一個變量,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的數據的改變。 而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,所以引用必須在一開始就被初

原创 精靈幀圖

 用精靈幀圖片創建一個精靈,可以包含一個矩形結構。CCSprite* sp1 = CCSprite::createWithSpriteFrame(C

原创 Cocosd-x設計模式之三:管理者模式

想必讀者一看這個題目又要納悶了,神馬又是“管理者模式”啊? 管理者(Manager)就是專門負責管理其它類的實例的類,比如Cocoa裏面的NSFontManager、NSInputManager、NSFileManager和NSLay

原创 使用Tiled地圖及利用地圖設置座標

  使用Tiled軟件將地圖信息保存爲XXX.tmx格式。/*加載Tiled地圖,添加到場景中*/ CCTMXTiledMap* m

原创 Cocosd-x設計模式之四 :外觀模式

1.應用場景 Cocos2d-x裏面有一個非常明顯的地方使用了外觀模式,它就是SimpleAudioEngine。因爲它爲CocosDenshion這個子系統的一組接口提供了一個一致的界面,同時定義了一個高層接口,方便客戶使用該子系統

原创 反轉鏈表

感覺跟插入排序法的思想有些類似,假定前面都是排序好的。pNode就是當前拿在手中的準備插入的結點,除了注意改變當前結點連接之前要保存pNode後面一個結點的位置,不然找不到下一個結點的位置了。 struct ListNode {

原创 Cocos2d-x設計模式發掘之一:單例模式

本系列文章我將和大家一起來發掘cocos2d-x中所使用到的設計模式,同樣的,這些模式在cocos2d-iphone中也可以找到其身影。 聲明:這裏發掘模式只是我的個人愛好,通過這個過程,我希望能加深自己對於設計模式運用的理解。關於模

原创 c++中的explicit

C++提供了關鍵字explicit,可以阻止不應該允許的經過轉換構造函數進行的隱式轉換的發生。聲明爲explicit的構造函數不能在隱式轉換中使用。 C++中, 一個參數的構造函數(或者除了第一個參數外其餘參數都有默認值的多參構造函數

原创 面向接口編程中,接口中需要純虛析構函數嗎?

struct ITest { //virtual ~ITest() = {}; 需不需要 virtual void print() = NULL; }; struct tagCMD{ int a; int b; }; cla