標籤:cocos2d-js cocos2d-html5 localstorage 資料存放區
做遊戲時經常需要的一個功能呢就是資料的儲存了,比如遊戲最高分、得到的金幣數、物品的數量等等,cocos2d-html5使用了html5,所以html5的資料儲存方法是對引擎可用的;
html5本機資料儲存是使用js對資料進行操作,html5 對資料的儲存提供了兩個方法:
sessionStorage - 只對本次會話保留資料
localStorage - 長時間保留資料
關於這個sessionStorage只在瀏覽器開啟進行會話時可用,在遊戲中沒有測試,用法是和localStorage方法相同的,只是對資料儲存的時間上不同;
其中localStorage 方法 對保留的資料沒有時間限制,除非使用者手動清理資料,也是我在遊戲中常用的方法;
對資料的儲存最常用的就是 getItem(‘‘,‘‘); 和setItem(‘‘,‘‘);這兩個方法;
由此可見本機存放區資料的方法很簡單,就是簡單的設定鍵(key)值(value)對,以及根據鍵(key)擷取儲存的值(value);
還有一點需要注意的就是 html5本機資料儲存,只能儲存字串資料,無論你儲存什麼都會自動轉換為字串,所以如果要儲存其他類型的資料的時候,要記得進行資料轉換,
這裡我寫一個儲存和讀取json資料的例子:
//這是一個儲存娃娃數量的json資料dollNum = {Aries: 0, Taurus: 0, Gemini: 0, Cancer: 0, Leo: 0, Virgo: 0, Libra: 0, Scorpius: 0, Sagittarius: 0, Capricornus: 0, Aquarius: 0, Pisces: 0};/** * 儲存Doll數量,要儲存json資料的時候,需要使用JSON.stringify();方法將JSON轉化為字串 */function saveDollNum(){ var tempDollNum = JSON.stringify(dollNum); sys.localStorage.setItem("dollNum", tempDollNum);}/** * 載入Doll數量 和 keys;然後再讀取過後,需要用JSON.parse();方法將字串轉化為JSON */function loadDollNum() { var tempDollNum = sys.localStorage.getItem("dollNum"); if(tempDollNum == null || tempDollNum == ""){ saveDollNum(); cc.log("default dollNum " + dollNum); }else{ tempDollNum = sys.localStorage.getItem("dollNum"); cc.log("get dollNum " + tempDollNum); } //將字串轉化為json tempDollNum = JSON.parse(tempDollNum);}
這樣就可以一次儲存多個資料,並且操作起來也方便
OK 資料存放區介紹完了,更多精彩在我的個人原創部落格網站:Melove 我愛 http://www.melove.net