在遊戲過程中經常需要記錄一些遊戲內的資料或玩家記錄等資訊,如遊戲等級,經驗值,分數等等,因此儲存資訊的功能十分重要。開發人員可以直接使用cocos2dx裡已經準備好的資料儲存系統。
資料儲存就是在應用執行過程中產生一系列的資料儲存和提取,引擎中主要由userdefault類提供了這套功能,它基於鍵值對儲存資料,所以使用十分方便。
userdefault類的基本方法:
static userdefault * getinstance() //獲取單例物件方法
static void destroyinstance() //銷毀物件
根據鍵值對獲取資料:
[bool/int/float/double/std::string/data] get[bool/interger/float/double/string/data]forkey(const char* pkey) //獲取儲存中制定鍵值對應的[布林值/整數值/浮點數/雙精度浮點數/字串/資料物件]資料,並返回對應資料。
根據鍵值對獲取資料,若資料不存在返回預設值:
[bool/int/float/double/std::string/data] get[bool/interger/float/double/string/data]forkey(const char* pkey , [bool/int/float/double/std::string/data] defaultvalue) //獲取儲存中制定鍵值對應的[布林值/整數值/浮點數/雙精度浮點數/字串/資料物件]資料,並返回對應資料,若資料不存在,返回引數2預設值。
根據鍵值對儲存資料:
void set[bool/int/float/double/std::string/data]forkey(const char* pkey , [bool/int/float/double/std::string/data] value) //按照鍵(引數1)值(引數2)對儲存資料。
把資料寫入檔案中:
void flush() //使用set方法把鍵值對儲存在userdefault中後,可以通過這個函式把資料儲存在xml檔案裡。
設定**物件:
static void setdelegate(userdefault* delegate) //我們可以通過繼承userdefault來創造我們自己的資料管理類,如引擎中自帶的userdefaultandroid就是安卓版的資料管理類,用這個方法呼叫這個引數,就可以把安卓版的用作**。注:每**乙個新物件會刪除之前的**物件,如想取消**,引數設為空指標即可。
獲取xml的路徑:
static const std::string getxmlfilepath() //獲取檔案儲存路徑
xml檔案時否存在:
static bool isxmlfileexist()
基於Aerospike的使用者資料管理系統實踐
2015 05 12 freewheel 在網際網路廣告行業中,根據使用者的資訊和購買興趣進行精準廣告投放已成為乙個基本需求。為了滿足這一需求,需要搭建乙個支援高併發 低延遲 可擴充套件的使用者資料庫,這是很多實時廣告系統面臨的乙個技術挑戰。freewheel的使用者資料庫目前儲存著6億多條使用者資...
cocos2dx 記憶體管理
記憶體管理中經常遇到的問題 記憶體洩露,記憶體溢位。在cocos2dx中用的是引用計數和自動釋放池的技術,由於熟悉objective c語言,所以對這兩個概念不會很陌生。一 引用計數 引用計數是自動記憶體管理的基礎 在物件裡增加乙個引用計數,當外部引用增加時,計數器加1,當外部引用消失時,計數器減1...
cocos2d x 記憶體管理
呼叫了autorelease的物件,將會在自動 池釋放的時候被釋放一次。因為這個操作發生在 mainloop drawscene 後,這時候遊戲中所有的邏輯已經執行完畢,正是釋放無效資源的最佳時機。所以乙個物件被create後,將被放進pool中,其ref 數為1,當遊戲整個邏輯跑完,如果沒有增加r...