天天看点

Cocos Creator做一个简单的本地签到

效果图:

时间:

Cocos Creator做一个简单的本地签到
Cocos Creator做一个简单的本地签到

 时间:

Cocos Creator做一个简单的本地签到
Cocos Creator做一个简单的本地签到

 创建GameData全局类用来存储缓存

cc.GAMEDATA= cc.GAMEDATA || {};
//记录签到缓存
cc.GAMEDATA.setqiandao= function(tig){
    cc.sys.localStorage.setItem("setqiandaotig",tig)
}
//得到是否可以签到
cc.GAMEDATA.getqiandao= function(){
    let qiandao = cc.sys.localStorage.getItem("setqiandaotig") || 1;
    if(qiandao==1){
        return true;
    }else{
        return false;
    }
}
//记录签到天数 判断第几个按钮
cc.GAMEDATA.setqianDay=function(day){
    cc.sys.localStorage.setItem("qianDay",day>7? 1:day);
}
cc.GAMEDATA.getqianDay=function(){
    let day =cc.sys.localStorage.getItem("qianDay")||1;
    return Number(day);
}
//获取设置日期
cc.GAMEDATA.setDataday=function(day){
    cc.sys.localStorage.setItem("today",day);
}
cc.GAMEDATA.getDataday=function(){
    let day =cc.sys.localStorage.getItem("today")||0;
    return Number(day);
}
           

创建Games脚本:

properties: {
        SignInUI : cc.Node, //签到面板
}

 start () {
        if(cc.GAMEDATA.getDataday() !=new Date().getDate()){
            cc.GAMEDATA.setqiandao(1);
        }else{
            cc.GAMEDATA.setqiandao(2);
        }
    },

  //签到按钮
    SigInOnClick(){
        this.SignInUI.active = true;
        for(let i=0;i<7;i++){ 
            if(i== cc.GAMEDATA.getqianDay()-1 && cc.GAMEDATA.getqiandao()){
                this.SignInUI.children[i].getComponent(cc.Button).interactable=true;
            }else{
                this.SignInUI.children[i].getComponent(cc.Button).interactable=false;
            }
        }
    },
       //签到按钮点击天数
    SigInOnClickDay(event,customData){
        debugger;
        cc.GAMEDATA.setqiandao(2); //禁止签到
        let day =parseInt(customData)+1;
        this.SignInUI.children[cc.GAMEDATA.getqianDay()-1].getComponent(cc.Button).interactable=false; //签完 禁用
        //TODOO 这里可以写点击按钮后的事件(如奖励)
        cc.GAMEDATA.setqianDay(day); //更改天数
        cc.GAMEDATA.setDataday(new Date().getDate()); //Date().getDate() 获取本地时间
    },
    //关闭按钮
    SigInOnQuite(event,customData){
        this.SignInUI.active=false;
    },
           

 代码是判断按钮的组件中的interactable的ture和false来进行签到的 

 会看到我在代码中是用背景下的子物体数组,来看下节点组件是怎么设置的叭

Cocos Creator做一个简单的本地签到
Cocos Creator做一个简单的本地签到
Cocos Creator做一个简单的本地签到
Cocos Creator做一个简单的本地签到

感谢阅读!

继续阅读