1. 程式人生 > >cocos2d-html5開發之本地數據存儲

cocos2d-html5開發之本地數據存儲

本地 ava 一個 使用 class gin 自己 記得 default

做遊戲時常常須要的一個功能呢就是數據的保存了,比方遊戲最高分、得到的金幣數、物品的數量等等。cocos2d-html5使用了html5。所以html5的數據保存方法是對引擎可用的;

html5本地數據存儲是使用js對數據進行操作,html5 對數據的存儲提供了兩個方法:

sessionStorage - 僅僅對本次會話保留數據

localStorage - 長時間保留數據


關於這個sessionStorage僅僅在瀏覽器打開進行會話時可用。在遊戲中沒有測試,使用方法是和localStorage方法同樣的,僅僅是對數據保存的時間上不同;

當中localStorage 方法 對保留的數據沒有時間限制。除非用戶手動清理數據,也是我在遊戲中經常使用的方法;
對數據的存儲最經常使用的就是 getItem(‘‘,‘‘); 和setItem(‘‘,‘‘);這兩個方法。
由此可見本地存儲數據的方法非常easy,就是簡單的設置鍵(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

cocos2d-html5開發之本地數據存儲