cocos2dx基礎篇 26 單例模式

2021-08-28 02:14:17 字數 1341 閱讀 3217

單例模式,說的通俗一點就是:建立某個類的全域性唯一靜態例項物件。也就是說從它建立開始,一直到整個遊戲程式結束才會釋放資源,期間一直儲存的著資料。

單例類在大部分遊戲中應該是必不可少的部分,如整個遊戲**的開關控制、資料的載入與儲存等都需要乙個全域性訪問點來控制,那就需要用到單例類了。

shared***()改為 getinstance() 。

有乙個很形象的比喻,摘自:

假如你是乙個男的,但是你私生活不能自理:不會煮飯,洗衣服,穿的衣服永遠都no fashion。

這時候你需要什麼?沒錯,需要乙個女朋友!但這個女朋友你該怎麼「使用」呢?

給你以下兩種選擇:

(1)要洗衣服的時候「建立」乙個女朋友(也就是去找乙個女朋友),洗完後將女朋友甩了;

當你要做飯,繼續「建立」乙個女朋友,做完後甩掉;

甚至是當你需要滿足某種不可告人的需求時,你需要「建立」乙個女朋友...然後...

(2)找乙個可以過一輩子的女朋友,永遠在一起,你若不離,她便不棄!

想怎麼用就怎麼用,省去了相親等一系列麻煩!

以上兩種方法雖然都可以讓你告別你的右手,但是第一種方法的前提條件太誇張了:你要是乙個高富帥

1、cocos2dx中的單例模式

cocos2dx中其實存在很多的單例類,相信大家也都接觸過。

例如:ccdirector******audioengineccuserdefaultccspriteframecache等都是用了單例模式,並可以通過shared***()來獲取單例物件,如ccdirector::shareddirector()

2、建立單例類

2.1、宣告.h

//

class global : cocos2d::ccobject ;

//

2.2、定義實現.cpp

//

//初始化單例唯一例項物件m_global

global* global::m_global = null;

//獲取全域性訪問點

global* global::shareglobal()

return m_global;

} //其他函式的定義實現

//......

//

Cocos2d x中單例的使用

大家都知道乙個程式中只有乙個導演類,eg 1 ccdirector pdirectory ccdirector shareddirector 初始化導演類。可通過 pdirectory 屬性 取得自己想要的值。我們也可以自己設定乙個類用於儲存只初始化一次的量,剛開始學2dx,今天為了2個cclaye...

cocos2dx基礎篇 27 螢幕適配

1 兩個解析度 1.1 視窗解析度 在main.cpp中有個設定視窗解析度的函式。該函式是設定了我們預想裝置的螢幕大小,也就是應用程式視窗的大小。eglview setframesize 480,320 1.2 設計解析度 可視區域 但是對於每個使用者來說,他們使用的裝置不一定是 480 320 的...

Cocos2dx 《基礎》 幀動畫

幀動畫 a.spriteframe 精靈幀。精靈幀包含了對應紋理在大的紋理區域中的位置和大小,對應紋理是否經過旋轉和偏移。根據這些幾何資訊,可以從大的紋理中找到正確的紋理區域作 為精靈幀顯示的影象。使用紋理建立精靈幀 auto tex texturecache getinstance addimag...