【步兵 cocos2dx】热更新(上)

本文介绍了Cocos2d-x游戏中使用Lua进行热更新的方法,包括lua脚本的热更新、资源更新、资源下载和资源打包的流程。通过调整资源搜索优先级,利用AssetsManager进行资源下载,并探讨了单个文件md5校验的优缺点。文章还提到了批处理和git工具在资源打包中的应用。

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

【步兵 cocos2dx】lua的热更新 By EOS.

之前写好的热更,基本可以在项目中使用,接下来拿出来跟大家分享一下。
话不多说,直接进入正题。。。总感觉两行长度差太多不舒服,现在好了。


lua的热更新

因为lua脚本的独立性和模块管理的灵活性,所以我们可以在程序不重新启动的情况下,
来卸载和重新加载lua脚本,但是因为独立,所以可以在任何结点进行重新加载,
但由于全局表本身和资源可能引发各种各样的问题,所以一般在程序的一开始今人热更新。
省去很多麻烦,当然如果提示性的下载再重新加载也是没有问题的,
前提是能够兼容用户不更新情况下,还保持游戏的一致性(基本上就是只更新资源了)。
核心代码:

--先卸载
package.loaded[MODEL_NAME] = nil

--cocos路径缓存,记得清,不然直接返回缓存路径
cc.FileUtils:getInstance():purgeCachedEntries()

--重新加载
require MODEL_NAME

顺带一题:lua脚本也是资源的一部分,从使用时候的文件路径也可以看出来,
和图片音频是同级的,只不过单独给了个文件夹而已。


资源更新

已经安装的apk中的资源,是没办法变动的,所以如果不能热更就变成了一锤子买卖,
出现问题只能重新安装新的apk来解决问题,成本大到离谱,比如显示出错了~,啧啧。

好在虽然我们包体本身资源没有办法修改,但是我们可以添加sd卡的读写权限,
然后再控制资源搜索的优先级,让其先去搜索sd卡,再搜索包体内的资源, <

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值