ulua入门1

1 篇文章 0 订阅

前言
说是入门,感觉入了好久。之前有所了解,说是ulua最好。官方网站
所以毫不犹豫git下载了最新的luaFramwork研究。直接看,作为lua小白,完全是天书。特别不明白,诸如哪里导出类,哪里看导出类的api。由于luaFramework,我拿到的基本上是最新的。bbs里的文档有些也不一致。git相关的demo很多也比较老旧。看的我云里雾里的。找遍全网,luaFramework作者的blog值得一看。
正文
以下为学习中的一些感悟:

1.packager类里将包和指定lua路径下的资源打包或者复制至StreamingAssets中,同时生成files.txt,即包含资源对象名+md5值(注意,md5是根据文件生成的)。
在其他平台运行时,首次会将资源解压至persistant目录。解压后,之后运行,会先下载files资源,并且更新检测,即本地不存在的文件及md5不一致的文件会更新。
采用线程来实现下载操作,值得学习。
2.自定义的类,放在customLuaSettings导出为对应wrap,可以在lua中使用。参考该系列;https://zhuanlan.zhihu.com/p/21442566?refer=pyluo
3.启动,GameManager中初始化game.Lua,require各界面及ctr,初始化ctrMgr,通过各界面的ctr,调用panelMgr创建panel并打开。
4.与后端交互,发送,通过networkMgr.sendMessage发送。有4种协议格式。 socket封装为socketClient负责收发,接受到消息后,调用networkMgr处理,
并且,发送socketcommand,从而network(lua)模块,解析对应的消息。在network模块中,有events模块,负责订阅(取消订阅)消息,类似消息号+handle,
5.metatable的介绍;
http://mobile.51cto.com/iphone-285892.htm
举例,father={house=”america”}
son={car=”toyoda”}
setmetatable(son,father);
print(son.house); son是没有house这个元素的,此时会查找son的metatable,发现是father,仍然查找不到,才会返回nil
过程如下:
1.在表中查找,如果找到,返回该元素,找不到则继续

2.判断该表是否有元表(操作指南),如果没有元表,返回nil,有元表则继续

3.判断元表有没有__index方法,如果__index方法为nil,则返回nil;如果__index方法是一个表,则重复1、2、3;如果__index方法是一个函数,则返回该函数的返回值
为所有的lua元素,增加自定义操作。
元表_index: http://blog.csdn.net/xocoder/article/details/9028347

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值