
LUA
Isaf
永远是个新手,好奇心是我最大的财富。
展开
-
关于LUA中的随机数问题
也许很多人会奇怪为什么使用LUA的时候,第一个随机数总是固定,而且常常是最小的那个值,下面我就简要的说明一下吧,说得不好,还请谅解。我现在使用的4.0版本的LUA,看的代码是5.0的,呵呵 LUA4.0版本中的自带函数库中有两个关于随机数的函数,一个是random,一个是randomseed。random有两个参数,用来设置随机数的范围,比如random(1,10原创 2006-10-11 10:40:00 · 15134 阅读 · 0 评论 -
为什么Lua虚拟机指令的格式是BCAop而不是CBAop?
lua的虚拟机指令数据是长度为32位(unsigned int或unsigned long)。其中低6位是操作码,接下来8位是参数A,紧接着是9位的参数C,最后是9位的参数B。 那它的格式是BCAop。为什么不是CBAop呢?按字母顺序命名不好吗? lua的作者roberto是这样解释的:http://lua-users.org/lists/lua-l/2015-05/msg00491.htm...原创 2018-03-04 21:36:08 · 369 阅读 · 0 评论 -
建了个讨论lua的QQ群,欢迎喜欢lua的朋友们加入。
群号:698032152原创 2018-03-03 16:52:28 · 2758 阅读 · 2 评论 -
如何阅读lua的字节码
本文简单介绍一下如何阅读lua的字节码。有以下lua源码:--文件名:main.lualocal a = 123local b = 456function foo() local c = 1 return 1, 123, aend我们使用luac这个工具(使用lua源码可以编译出来)可以查看这段代码对应的字节码是怎样的,使用以下命令(windows下...原创 2018-03-16 17:50:13 · 2617 阅读 · 0 评论 -
lua5.2参考手册已经翻译好了
英文水平有限,恐怕有误译,欢迎讨论指正。 文档是wps格式的,可以用word直接打开,不过推荐使用wps ^_^。原创 2014-01-25 12:32:21 · 3322 阅读 · 23 评论 -
编译luamongo
想试一下mongodb的lua驱动,去github下了一个luamongo,结果走上一条不归路啊。 首先luamongo封装了mongodb的C++接口,而且还用到了bootst,而我这两者都没有。 网上下载了bootst和mongodb,结果发现mongodb这货编译要用到python和scons,又去下载了python和scons。 又折腾了一个环境变量,终于可以原创 2014-02-26 21:31:11 · 3198 阅读 · 2 评论 -
关于求模与求余
求模与求余的区别原创 2013-12-18 11:50:46 · 10707 阅读 · 1 评论 -
翻译lua5.2的参考手册
决定翻译lua5.2的参考手册,借此机会了解一下lua5.2的东西。争取在10月底翻译完,加油!原创 2013-09-23 19:34:55 · 2797 阅读 · 5 评论 -
lua的前景??
除了专业的游戏公司,貌似很少人在用lua来做开发啊,国内的lua社区越来越不行了。 lua还在不断的发展,但每次新版本c接口都改动很大,项目想要升级有点困难啊。 lua还有前途吗?原创 2013-09-17 21:15:33 · 6446 阅读 · 2 评论 -
修改lua_tinker以支持lua5.2
由于lua_tinker是在lua5.0的时候开发的,后来作者不知道哪去了,也不维护一下。还好lua5.1对c接口的改动不大,所以lua_tinker可以不作任何修改就可以支持lua5.1。但lua5.2的一项修改是去掉了LUA_GLOBALINDEX这个宏,所以lua_tinker中用到的lua_settable(L, LUA_GLOBALINDEX)和lua_gettable(L, LUA原创 2013-08-13 11:55:31 · 3236 阅读 · 1 评论 -
关于如何释放lua table占用的内存
table的大小是动态变化的。看如下代码:tb = {1,2,3} --数组大小4,hash表大小1(不管hash表有没有存数据,它的大小最小为1)tb[5] = 5tb[100] = 100 --数组大小4,hash表大小2因为后插入的两个数的key过于离散,所以它们被保存到hash表中。最终tb的大小为4+2=6。这时我们对table进行删除操作:tb[1] =原创 2013-06-07 18:10:05 · 14138 阅读 · 0 评论 -
关于lua table的实现
以下内容只作本人学习笔记,内容会随着我对lua源码分析的深入慢慢修改,所以以下内容只作参考,并非100%正确。 脚本table中的元素在c中是分两个地方存放的,即数组与hash表。table中元素的位置也不是一直固定的,它会根据table被修改的情况动态改变。下面分两种情况说一下table的特点。 第一,先来看构造table时lua是怎么处理的。 如果构造table的原创 2013-05-22 18:41:35 · 5796 阅读 · 0 评论 -
关于lua数字for循环的实现
看以下代码:for i=1,2 do print(i) i=3end输出是什么?如果习惯了C/C++语言,会觉得因为改变了控制变量i为3,所以在执行第二次循环体之前判断不通过,所以输出是1。但结果输出是1和2,即虽然改变了i,但循环还是执行了2次。这是为什么呢?看了lua的源代码,发现在语法分析阶段,表达式中的i(也叫控制变量)和循环体中的i并不是一个值,其实表达原创 2013-05-23 17:32:42 · 26985 阅读 · 0 评论 -
lua链接dll的问题
lua可以链接专门为lua写的dll,用require就可以了。但有个小地方是需要注意的。有场景如下:1.有一个脚本require.lua,它放在script目录下。2.有两个dll:test.dll,lua.dll,test.dll依赖于lua.dll,它们放在bin目录下。3.script与bin是同级目录。为了使require.lua可以链接test.dll,在脚本要原创 2013-05-20 19:33:28 · 8835 阅读 · 1 评论 -
Lua学习笔记1
今天上班的时候和程序对一个功能的程序接口,需求是这样的:脚本代码根据配置文件生成一组中奖信息,用table来保存,然后将这个table传给程序接口,程序根据这个table中的数据向玩家显示中奖界面。很简单的一个功能,脚本这边的函数很快就写完了,然后我就琢磨着程序的接口应该怎么写,由于之前没有试过在程序接口中访问lua脚本传过来的table,所以遇到了一些麻烦,上网搜了一下相关资料,总算搞清楚了。现原创 2012-05-23 22:22:58 · 10004 阅读 · 0 评论 -
lua版本历史
版本号说明:* 版本号由 "主版本号.次版本号.修正版本号"组成。修正版本号为0时可以忽略。* 主版本号与次版本号统称为版本号,相同版本号的版本它们的参考手册是相同的,虚拟机、字节码及相关的库是兼容,即ABI(Application Binary Interface)兼容的。* 如果只是修复一些bug,则只增加修正版本号。* 如果增加了一些功能,则增加次版本号,同时修正版本号复0。* 如...原创 2019-02-26 11:35:33 · 3182 阅读 · 1 评论