进来就加载的方法_微信小游戏开发之CocosCreator资源加载方式

本文围绕Cocos Creator中图片、Json等资源的加载方式展开。介绍了导入资源的方法,对比了静态加载和动态加载。静态加载会使场景初始化耗时久、切换体验差;动态加载在需要时异步加载,资源需放resources目录。最后作者分享上线的微信小游戏并预告后续内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ea406d50e83ef4053669ca8f6c56c2e8.png

主题

Cocos Creator中图片、Json等资源的动态加载

正文

Cocos Creator导入资源方式:

  • 将资源文件拷贝到项目资源文件夹下,然后在Cocos Creator窗口就能看到了
  • 拖拽资源文件到“资源管理器”面板上

项目中常用的资源有图片资源、预制资源(Prefab)、图集资源、脚本资源、声音资源、字体资源、JSON资源、文本资源等。

1. 静态加载

这些资源都可以直接拖动属性编辑器中绑定赋值,但是资源的读取涉及到I/O操作、序列化和反序列化,如果直接在属性编辑器中绑定,那么场景的初始化耗时会非常久,场景间的切换体验就会非常差,虽然CocosCreator提供了延迟加载资源策略,但是我尝试下来感觉场景的切换还是很慢。

2.动态加载

动态加载,即在js脚本文件中,需要用到资源时才会异步加载进来,而需要动态加载的资源需要放在resources目录下,使用cc.resources.load方法加载:

//test指的是resources目录下test.json文件
cc.resources.load("test", function (err, assets) {
    if (err) {
        cc.log("加载失败:" + err);
    }
    if (assets instanceof cc.JsonAsset) {
        cc.log(assets.json);
        ...
    }
}.bind(this));

//动态加载图片img.png
cc.resources.load("img", cc.SpriteFrame, function (err, spriteFrame) {
    if (err) {
        console.log("加载home_role_失败:" + err);
    }
    this.testSpriteFrame = spriteFrame;
    this.testSpriteFrame.addRef();
    ...
}.bind(this));

onDestroy() {
    ...
    //释放资源
    this.testSpriteFrame.decRef();
    ...
},

加载远程服务器资源,则可以使用cc.assetManager:

cc.assetManager.loadRemote('https://.../game_bgm.mp3', function(err, audio) {
    if (err) {
        console.log("加载失败:" + err);
    }

    if (audio instanceof cc.AudioClip) {
        ...
    }
}.bind(this));

图集资源是为了提高图片加载的性能,将碎片化的图片资源整合到一张图片上,再使用。比如做帧动画使用的图片,他们的内容不基本相似,可以采用生成图集的方式去使用。

结尾

自己动手写,分解项目中的各个模块需求,通过查文档和搜索Cocos社区,解决碰到的问题,最终在微信上线了下面这款微信小游戏《成语锦衣卫》,欢迎大家扫码体验,并作为参考项目模版,开发出属于自己的小游戏

e71cc70cbd2af7b8baa528839dcadbea.png

预告

下一节和朋友们说一说:场景切换和场景间数据传递方式(常驻节点),背景音效(场景切换不暂停)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值