cocoscreator资源分包加载

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  以上的代码就可以写在这个脚本里,最后跳转可以调到游戏的第一屏了,这样子包可以随意选了。


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

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容