美文网首页
cocoscreator资源分包加载

cocoscreator资源分包加载

作者: 从不抱怨的小肚肚 | 来源:发表于2020-04-17 15:48 被阅读0次

cocoscreator发布平台包含很多,QQ渠道要求比较严格些,主包最大支持4M,导致很多小游戏都需要做分包。

资源分包 从 v2.0.7 开始支持。

分包加载,即把游戏内容按一定规则拆分在几个包里,在首次启动的时候只下载必要的包,这个必要的包称为 主包,开发者可以在主包内触发下载其他子包,这样可以有效降低首次启动的消耗时间。

下面就开始正题。 

1.在creator中


把需要分的包都这么操作,但是但是不可以把第一屏游戏的资源分出去,下面粘代码

onLoad() {

        //分包加载

        var self = this;

        //初始化  注意先加这个

        //加载分包数量

        this.countSubPackge = 0;

        //是否切换了场景

        this.LoadSceneBool = false;

        //加载分包  第一个 分包名字   第二个需要跳转场景的名字   第三个分包总数量

        this.LoadSubPac('anims', 'load', 2);

        this.LoadSubPac('images', 'load', 2);

        //3S后切换场景   第一个 需要跳转场景的名字   第二个分包总数量

        this.scheduleOnce(function () {

            self.SceneMangerLoadScene('load', 2);

        }, 3);

    },

    //这是三个方法

    LoadSubPac (SubPackgeNameStr, LoadSceneNameStr, CountInt) {

        var self = this;

        console.log('开始加载分包');

        cc.loader.downloader.loadSubpackage(SubPackgeNameStr, function (err) {

            if (err) {

                self.LoadSubPac(SubPackgeNameStr, LoadSceneNameStr, CountInt);

                console.log('重新加载');

                return;

            }

            self.SwitchLoadScene(LoadSceneNameStr, CountInt, SubPackgeNameStr)

        });

    },

    /**  跳转场景 三秒延迟跳转场景 */

    SceneMangerLoadScene(sceneName, PackageCount) {

        if (this.countSubPackge >= PackageCount) {

            cc.director.loadScene(sceneName);

            console.log('跳转场景');

        }

        else

            this.LoadSceneBool = true;

    },

    /** 跳转场景 */

    SwitchLoadScene(sceneName, PackageCount, SubName) {

        // cc.log("this.countSubPackge >= PackageCount    ", this.countSubPackge, +"   " + PackageCount);

        this.countSubPackge += 1;

        console.log('load subpackage successfully.--', SubName);

        if (this.LoadSceneBool == true && this.countSubPackge >= PackageCount) {

            cc.director.loadScene(sceneName)

            console.log('跳转场景');

        }

    },

如果分不清到底什么资源会被第一屏占用  或者是因为游戏类型的关系  第一屏的资源都很大有个取巧的办法。

重新建一个新的scene 作为游戏的第一个场景把它作为主包,主包中只包含一个脚本和一个scene  以上的代码就可以写在这个脚本里,最后跳转可以调到游戏的第一屏了,这样子包可以随意选了。


以上内容为随手记录,方便日后自己看。

如有雷同纯属巧合,转载请注明出处。

相关文章

网友评论

      本文标题:cocoscreator资源分包加载

      本文链接:https://www.haomeiwen.com/subject/ydhyvhtx.html