lua
monkeycat520
游戏程序,两年服务端开发经验,三年双端开发经验,目前专攻客户端
展开
-
excel导出为lua文件
周末想在家弄一个excel导出为lua文件的lua脚本,于是开始动手查资料。网上多是python实现,而lua实现的代码示例几乎没有,而最后我也是没能用lua实现一个示例,只好借用其他码友的Python示例了。整个过程分为两个步骤:一是遍历指定的文件夹,将下属的所有excel文件找出来;二是读excel文件,并写到lua文件中。网上很多例子是lfs+luacom实现,win下安装这两个扩展包挺方便...原创 2018-07-16 10:51:07 · 1378 阅读 · 0 评论 -
tolua
tolua#是Unity静态绑定lua的一个解决方案,它通过C#提供的反射信息分析代码并生成包装的类。它是一个用来简化在C#中集成lua的插件,可以自动生成用于在lua中访问Unity的绑定代码,并把C#中的常量、变量、函数、属性、类以及枚举暴露给lua。它是从cstolua衍变而来。从它的名字可以看出,它是集成了原来的tolua代码通过二次封装写了一个C#与tolua(c)的一个中间层。A...转载 2018-07-16 16:53:01 · 869 阅读 · 0 评论 -
如何编写高效的Lua代码
直接上链接:http://eric-gao.iteye.com/blog/1739887以下是总结(部分暂时没看懂的,例如协程就不总结了):1.local > upvalue > global2.使用闭包来避免动态编译3.table申请空间的算法: 重用table,减少小table的创建,初始化时定下table大小4.优化字符串处理工作(例如table.con...转载 2018-07-23 18:09:57 · 313 阅读 · 0 评论 -
lua实现类
今天再看一遍项目实现lua类的方式,终于看明白了,做下记录,主要思想如下:1.首先lua中的类肯定也是table,在类中用一个__tbl_Baseclass__的表有序存起父类(有序很关键,函数重写(覆盖)在这里给出支持),在table下增加一个元表,在原表中用__index增加对__tbl_Baseclass__的元素的访问2.要让对实例对象的访问都转到类的定义上其中用到的一些lua...原创 2018-07-24 16:41:24 · 636 阅读 · 0 评论 -
lua表取长度操作
在5.1上运行这个例子,尝试解释下这里的神奇现象:30行代码我直接让nil夹在数组的非空值之间,按照lua5.1的手册描述,如果数组有一个“空洞”(夹在非空值之间的nil),那么#t可能是指向任何一个nil值前一个位置的下标。这是因为取长度操作的具体代码,并不会遍历数组的每一个元素,而是跳跃着检查,于是出现不可控的结果。而31-36行,表a是逐步插入元素的,这涉及lua表的插入元素算法...原创 2018-07-30 16:09:38 · 5464 阅读 · 2 评论 -
虚拟机初认识
一般的编译型语言,经过编译后生成的都是与当前硬件环境相匹配的汇编代码;而脚本语言经过编译器处理生成字节码,而后在对应的虚拟机中执行。每个脚本语言都有自己的一套字节码,与硬件平台无关(差异都由虚拟机解决),实现了跨平台 字节码不能像汇编代码那样直接有极其执行,所以运行速度相对较慢虚拟机需要完成的工作:将源代码编译成虚拟机可以识别执行的字节码 为函数调用准备调用栈 内部维持一个指令指针...转载 2018-08-19 23:27:42 · 150 阅读 · 0 评论 -
lua元表实现原理读后感
lua虚拟机从一个表中查询数据的过程:如果查询对象是表,则尝试根据key在表中查询数据,若有则返回结果;若结果为空,且无__index成员,则返回空结果;若结果为空且有__index,则设查询对象为__index,进行下一层深度的查找; 若查询对象不是表,则尝试获取对象的metatale["__index"](usedata可能有此成员),设为查询对象并进行下一层深度的查找; 逐层深度向下...原创 2018-08-31 21:49:16 · 1047 阅读 · 0 评论 -
lua函数之搜寻变量
lua中的每个函数会被lua虚拟机解析保存在FuncState结构体中(一个lua文件本身也会对应一个FuncState结构),每个FuncState有一个prev指针指向它的父函数(最高层是某个lua文件,即全局环境,改层的prev指针为NULL)。lua的变量分三种类型:全局变量、局部变量和UpValue。有了以上的认识之后,我们来看看lua函数是怎么获取它需要用到的变量,以一下代码...原创 2018-09-08 23:19:50 · 765 阅读 · 0 评论 -
lua os.clock可能会返回负数
上周在客户端里增加了一个os.clock对按钮进行控制,防止短时间内连续点击,结果出现了不能点击的情况,后来才知道os.clock可能会返回负数(溢出的情况),需要在获取之后再作处理才能使用。附上一篇介绍的非常详细的文章:https://www.jianshu.com/p/46e0d70746cc...转载 2018-09-25 16:21:59 · 585 阅读 · 0 评论