码迷,mamicode.com
首页 > 其他好文 > 详细

cocos2dx lua 热加载实现

时间:2015-08-30 21:05:03      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:

【Q】原创 2015-08-30

  在公司使用cocos2dx+lua 开发游戏有一段时间了,刚好lua的热更新交给我负责。以前热更新的lua脚本大部分都是在下载之后加载。最近策划又有新需求,需要在游戏过程进行如果有热更新需要提醒用户,也意味着在内存里的lua文件可能不是最新的。后来查到http://www.2cto.com/kf/201411/351833.html此博客发现lua原来加载到了一个package.loaded的缓存中,只要相应的将此设为空并require即可。

     后来也就按照该博客的思路也想实现一个一键重新加载所有的lua文件,以此来解决每次都启动模拟器问题。由于项目在开发过程中采用的mac模拟器,所以总体实现是可行的。项目在一个主要场景注册了一个按键事件。这次我采用的ctrl+r组合健实现。

代码我也就不贴了,主要也是那篇博客的方法,但是也有修改,

1、外部库 登记添加更多的一些库,比如protobuf、string、math等。

2、针对外部库,我们认为不会修改,因此对外部库的处理显示不重新加载。

3、针对框架的文件,比如cococs2d的文件,我们认为在开发过程也不会修改,所以在过滤了一些此文件。

4、由于重新加载了所有的lua文件、在此之前也将相应的socket断开连接。

5、清空了所有的内存纹理。

在实际使用由于不需要重新启动模拟器了,加快了开发。在此感谢该博客作者的热心分享

 

cocos2dx lua 热加载实现

标签:

原文地址:http://www.cnblogs.com/qboy/p/4771383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!