Skip to content

Latest commit

 

History

History
284 lines (250 loc) · 11.3 KB

File metadata and controls

284 lines (250 loc) · 11.3 KB
    /**
    * 通用组件
    * ComFunc()全局调用方法
    *所有需要通过cc.loader.loadRes动态加载的资源,都必须放在resources文件夹或它的子文件夹下。
    *resources文件夹里面的资源,可以关联依赖到文件夹外部的其它资源,同样也可以被外部场景或资源引用到。项目构建时,除了已在构建发布面板勾选的场景外,resources文件夹里面的所有资源,连同它们关联依赖的resources文件夹外部的资源,都会被导出。
    * 如果一份资源不需要由脚本直接动态加载,那么千万不要放在resources文件夹里。
    */

    function ComFunc(){

    }

    ComFunc.prototype.BtnSpriteUpdate=function(obj){   //Button按钮图片修改
        cc.loader.loadRes(obj.string,cc.SpriteAtlas,function(err,atlas){
            if (!err) {
            var frame1 = atlas.getSpriteFrame(obj.btnNormalSpriteFrame);
            obj.btn.normalSprite = frame1;
            var frame2 = atlas.getSpriteFrame(obj.btnPressSpriteFrame);
            obj.btn.pressedSprite = frame2;
            var frame3 = atlas.getSpriteFrame(obj.btnDisableSpriteFrame);
            obj.btn.disabledSprite = frame3;
            }else{
                console.log(err);
            }
        });   
    }

    ComFunc.prototype.BtnSpriteFrameUpdate=function(obj){   //Button按钮图片修改
        cc.loader.loadRes(obj.string,cc.SpriteFrame,function(err,res){
            if (!err) {
                obj.btn.normalSprite = res;
                obj.btn.pressedSprite = res;
                obj.btn.disabledSprite = res;
            }else{
                console.log(err);
            }
        });   
    }


    ComFunc.prototype.SpriteAtlasUpdate=function(obj){   //图集精灵修改
        cc.loader.loadRes(obj.string,cc.SpriteAtlas,function(err,atlas){
            if (!err) {
            var frame = atlas.getSpriteFrame(obj.spriteFrame);
            obj.sprite.spriteFrame = frame;
            }else{
                console.log(err);
            }
        });   
    }

    ComFunc.prototype.LoadPropItem = function(){    
        
        var urls = [];
        for (var i = 0; i < 5; i++) {
            var str = "";
            str = "propItem/PropItem_" + (i + 1);

            urls[i] = str;
        }
        urls[urls.length] = "propItem/PropItem_path";

        var self = this;
        window.propItemRes = null;
        cc.loader.loadResArray(urls, cc.SpriteAtlas, function (err, assets) {
            cc.log(assets,'所有道具图片资源');
            window.propItemRes = assets;
            
        });

        cc.loader.loadRes("PropList", function (err, txt) {
            cc.log(txt,'所有道具信息');
            window.PropItemPlist = txt;
        });
        window.AllCueRes = [];
        cc.loader.loadResDir("OtherImage/AllCue",cc.SpriteFrame,function (err, assets) {
            if(!err){
                for(var i = 0;i < assets.length;i++){
                    window.AllCueRes.push(assets[i]);
                }
            }
        });
    
        window.AllCueGrade = [];
        cc.loader.loadRes("UI/ModalLayer_1",cc.SpriteAtlas,function (err, assets) {
            if(!err){
                for(var i = 0;i < 8;i++){
                    window.AllCueGrade.push(assets.getSpriteFrame('cue_grade_'+ i))
                }
            }
        });
        
        window.AllRoomCard = [];
        cc.loader.loadResDir("OtherImage/GameTab/",cc.SpriteFrame,function (err, assets) {
            if(!err){
                for(var i = 0;i < assets.length;i++){
                    window.AllRoomCard.push(assets[i]);
                }
            }
        });

    }

    ComFunc.prototype.SpriteFrameUpdate=function(obj){   //普通精灵修改
        cc.loader.loadRes(obj.string,cc.SpriteFrame,function(err, spriteFrame){
            if (!err) {
                // console.log('123');
                obj.sprite.spriteFrame = spriteFrame;
            }
        });     
    }

    ComFunc.prototype.AddLayer=function(obj,scriptName,data){   //添加层

        cc.loader.loadRes(obj.string, (err, prefab)=>{
            if (!err) {
                if(cc.director.getScene().getChildByName('Canvas').getChildByName(obj.name) == null){
                    var node = cc.instantiate(prefab);
                    node.setName(obj.name);
                    cc.director.getScene().getChildByName('Canvas').addChild(node);
                    node.setPosition(cc.p(0, 0)); 
                    if(scriptName && data){
                        node.getComponent(scriptName).init(data)                    
                    }
                }
            }
        });  
    }

    ComFunc.prototype.TipLayer=function(string){   //通用提示框   

        cc.loader.loadRes("panel/TipModalLayer", (err, prefab)=>{
            if (!err) {
                if(cc.director.getScene().getChildByName('Canvas').getChildByName("TipModalLayer") == null){
                    var node = cc.instantiate(prefab);
                    node.setName("TipModalLayer");
                    cc.director.getScene().getChildByName('Canvas').addChild(node);
                    node.setPosition(cc.p(0, 0)); 
                    node.getComponent('TipModalLayer').init(string)                    
                }
            }
        });  
    }

    ComFunc.prototype.ShowPropName=function(propid){   //获取道具名称; 
        var strName = "KEY_PROP_" + propid + "_NAME";
        if(!PropItemPlist[strName]){
            var propInfo = UserData.GetPropInfo(propid);
            if(propInfo){
                return propInfo.remark;
            }else{
                return '未知物品';
            }
        }else{
            var name = PropItemPlist[strName]['zh-CN'];
            return name;
        }
    }

    ComFunc.prototype.ShowPropDec=function(propid){   //获取道具描述; 
        var strName = "KEY_PROP_" + propid + "_DEC";
        if(!PropItemPlist[strName]){
            return '';
        }else{
            var name = PropItemPlist[strName]['zh-CN'];
            return name;
        }
    }

    ComFunc.prototype.GetBatteryCellsByTime=function(timeValue){   //通用提示框   
        if (timeValue >= 0)
        {
            var cellCount = timeValue / (5 * 24 * 60 * 60);
            if (timeValue % (5 * 24 * 60 * 60) > 0)
                cellCount++;
            return cellCount;
        }
        return 0;
    }

    ComFunc.prototype.GetBatteryCellsByEtc=function(etcCount)
    {
        if (etcCount >= 0)
        {
            var cellCount = etcCount / 20;
            if (etcCount % 20 > 0)
                cellCount++;

            return cellCount;
        }

        return 0;
    }

    ComFunc.prototype.formatDate=function(date)      //格式化时间格式
    {
        date = new Date(date * 1000);
        var y=date.getFullYear();
        var m=date.getMonth()+1;
        var d=date.getDate();
        var h=date.getHours();
        var m1=date.getMinutes();
        var s=date.getSeconds();
        m = m<10?("0"+m):m;
        d = d<10?("0"+d):d;
        return y+"-"+m+"-"+d;
    }
    ComFunc.prototype.UserHead=function(obj){
        var resUrl=apiConfig.UserHead+UserData._curUserId;    //动态修改用户头像
            cc.loader.load({ url:resUrl, type: 'png' }, function (err, tex) {
                cc.log('Should load a texture from RESTful API by specify the type: ' + (tex instanceof cc.Texture2D));
                var frame = new cc.SpriteFrame(tex);
                obj.sprite.spriteFrame= frame;
            });
    }
    ComFunc.prototype.addNewAnimation=function(cueId,skinId,parentNode){
        var that = this;
        var url = 'ainm/CueEffectDic/CueEffectDic_'+ cueId;
        var url2 = 'ainm/CueEffect/CueEffect_'+ cueId + '_' + skinId;
        console.log(url)
        var skinInfos;
        var skin;
        cc.loader.loadRes(url, function (err, altas) {
            if (err) {
                //cc.error(err.message || err);
                return;
            }
            skin = cueId + '_' + skinId;
            
            console.log(skin)
            var skins = Object.keys(altas);
            console.log('图集详细信息',altas)
            console.log('球杆皮肤信息',altas[skins[skinId]])
            skinInfos = altas[skins[skinId]];
            
        });
        cc.loader.loadRes(url2, cc.SpriteAtlas, function (err, altasObj) {
            if (err) {
                //cc.error(err.message || err);
                return;
            }
            console.log('皮肤对应的图集',altasObj)
            
            var effectCount = skinInfos.effectCount; //特效数量
            for(var i = 0; i < effectCount; i++ ){
                console.log(skinInfos['effectFrameCount_' + i])
                var lth = skinInfos['effectFrameCount_' + i];
                var effect = skin + '_' + (i+1);
                console.log(effect)
                var imgs = [];
                for(var j = 1; j <= lth; j++){
                    var str = 'CueEffect' + effect + ' (' + j + ')';
                    //console.log(str)
                    var a = altasObj.getSpriteFrame('CueEffect' + effect + ' (' + j + ')');               
                    imgs.push(a)
                }
                console.log('资源图片' + i,imgs)
                var node = new cc.Node('effect');
                var sp = node.addComponent(cc.Sprite);
                sp.spriteFrame = imgs[0];
            
                var animation = node.addComponent(cc.Animation);
                
                // frames 这是一个 SpriteFrame 的数组.
                var clip = cc.AnimationClip.createWithSpriteFrames(imgs, 60);
                clip.name = 'animate';
                clip.speed = 0.5;
                clip.wrapMode = cc.WrapMode.Loop;
                clip.repeatCount = Infinity;
                animation.addClip(clip);
                animation.play('animate');
                node.setPosition(skinInfos['effectPos_x_' + i], skinInfos['effectPos_y_' + i]);
                //node.setContentSize(100, 100);
                node.setScale(skinInfos['effectScale_' + i], skinInfos['effectScale_' + i]);
                node.parent = parentNode;
                console.log('结束',node)
                
            } 
        })
    }
    var g_ComFunc= new ComFunc();
    window.ComFunc=g_ComFunc;
    window.CurrentLayerName = '';