前言
如果開發的遊戲沒有打算作成online game的話,基本上本機端資料存檔一定要會。一開始,我想說自己寫一個csv檔自己再搞一個class來處理他就好。但是,既然用了COCOS2D-X,他又有支援該功能何嘗不來玩玩看呢!
解說
cocos2dx內有個CCUserDefault的物件。
我們暫且不去細項看這類別的內容,簡單的介紹怎麼使用這物件來達到我們資料存檔或是讀取。
#include <CCUserDefault.h>
不用說,這一定要include的啊,不然怎麼用!
CCUserDefault::sharedUserDefault()->setIntegerForKey("level",m_iLevel);
當m_iLevel有改變時,可以馬上執行存檔至"level"這個標籤的動作。
m_iLevel=CCUserDefault::sharedUserDefault()->getIntegerForKey("level");
通常讀取標籤資料我都放在遊戲一開始的地方。這例子是把標籤"level"內的值存入變數m_iLevel。
就這樣,是不是很簡單?
範例-HelloCpp
來修改HelloCpp專案來測試測試一下功能。可以開啟VC和您sample下的HelloCpp的專案來跟我一起練習喔。
開發工具:Visual Studio 2010 Express
step1. 我們要先將專案加入一個include path "$(ProjectDir)..\..\..\cocos2dx\support" 不加,那include <CCUserDefault.h>編譯就不給你過,嘿嘿!
Step2. 開啟HelloWorldScene.cpp
最上面新增一下#include <CCUserDefault.h>
Step3. 開啟HelloWorldScene.h
在HelloWorldScene類別中新增一個m_iCount的變數。
Step4. 剛剛只是暖身,現在要開始跑嚕!回到HelloWorldScene.cpp。
現在進入HelloWorld::init()
我們來新增一些些程式碼
//+ --- CODE
//- --- CODE
Step5. 執行
不要懷疑,就run吧。我懶的在寫一個顯示的元件,我們就用Log看結果吧!
第一次Run,可以看到結果m_iCount=1
關掉,再Run第二次,得到結果m_iCount=2
留言列表