js -- 注意事项

来源:互联网 发布:java获取磁盘使用率 编辑:程序博客网 时间:2024/04/29 21:52


1.挂机时间走动解决

手机挂机时候,cocos2dx停止了渲染,此时定时函数是不会执行的。只有再次进入游戏才会执行,但是挂机的时间没用走。


/*没有连接服务器,home键退出后挂机时间 guaTime
 * 1.home键退出地方设置
 *   sys.localStorage.setItem(REFRESH_STORAGE, 1);//home键退出在进来判断。
 *   1:home键执行过了界面停止渲染了。
 *   2:按完home键后,又重新回到游戏中了,界面继续渲染,定时函数开始执行了。
 *
 * 2.定时函数里
 *   if(sys.localStorage.getItem(REFRESH_STORAGE) == 1){//可重新请求服务器
 *     sys.localStorage.setItem(REFRESH_STORAGE, 2);
 *   }
 *
 * 3.单机游戏
 *   考虑到玩家可能在挂机期间修改系统的时间,对时间数据进行本地加密等操作。
 * */









1.挂机代码

var HOMELAYERr_STORAGE = "HOMELAYERr_STORAGE";//home键出去了,存储挂机时间var HomeLayer = cc.LayerColor.extend({    _stopTime:0,//此页面停留时间    init:function(data) {        var bRet = false;        if (this._super(cc.c4b(0, 0, 0, 0))) {            bRet = true;        }        sys.localStorage.setItem(REFRESH_STORAGE, 2);        sys.localStorage.setItem(HOMELAYERr_STORAGE, this.storageTime());        this.schedule(this.countTime, 1);        return bRet;    },    /*计时函数*/    countTime:function(){        this._stopTime++;//界面停留时间        if(sys.localStorage.getItem(REFRESH_STORAGE) == 1){//home键出去了执行            sys.localStorage.setItem(REFRESH_STORAGE, 2);            var guaJI = sys.localStorage.getItem(HOMELAYERr_STORAGE);//this.storageTime()-guaJI :界面停留时间 + 挂机时间            var guaTime = this.storageTime() - guaJI - this._stopTime;//挂机时间            sys.localStorage.setItem(HOMELAYERr_STORAGE, this.storageTime());            this._stopTime = 0;        }    },    storageTime:function(){//获取本地时间秒        var d = new Date();        return Math.floor(d.getTime()/1000);//当前时间秒    }});HomeLayer.create = function(data){    var layer = new HomeLayer();    if (layer && layer.init(data)) {        return layer;    }    return null;}