
lua
_Bruce
在其职,谋其政,尽其责
展开
-
lua模式匹配
这些元字符的大写形式表示它们的补集,如%A,表示所有非字母字符。print(string.gsub("hello, up-down!","%S","."))--输出hello..up.down. 4上例中的4表示替换的次数。除了上述元字符之外,Lua还提供了另外几个关键字符。如:( ) . % + - * ? [ ] ^ $其中%表示转义字符,如%.表示点(.),%%表示百分号(%)。方括号[]表示将不同的字符分类,即可创建出属于自己的字符分类,如[%w_]表示匹配字符、数字 ...原创 2021-09-01 14:56:49 · 714 阅读 · 0 评论 -
loadstring的用法
之前一直听说,项目中没具体的用到,印象不深,后来面试时还真被问到了,记录下 local script="local ee={[0]={id=0,lv=5,text='y'},[1]={id=1,lv=3,text='z'}} return ee" local tb=loadstring(script)() print(tb[0].text) local addscript="function addNum(a,b) return a+b end" loa原创 2021-08-30 10:55:10 · 4833 阅读 · 0 评论 -
setfenv的用法
function fun1() setfenv(1, { show=_G.print,a=222 })-- 将当前函数的环境表改变 --print(a) --错误,无print show(a) --可以直接调用show ,并且a为222endfun1()function fun2() setfenv(2, { display=_G.print,a=333 })-- 将调用自己的函数的环境表改变 print("fun2",a) --可以正常使用,自己的...原创 2021-08-30 10:34:11 · 310 阅读 · 0 评论 -
cocos2dx-lua在xcode8.3的模拟器上崩溃解决办法
用xcode跑cocos2d3.17的版本项目lua-tests crash when LuaStack::init() function invoked lua_open()崩溃问题据说是原创 2020-09-21 19:56:35 · 377 阅读 · 0 评论 -
cocos2d 之lua加密
加密方式lua 代码加密方式很很多种,这里只讲最简单的一种,就是把代码编译成二进制字节码。lua 是一门脚本语言,不需要经过编译就可以使用 lua 解释器来执行;但我们也可以把 lua 代码事先编译成二进制文件,这样就达到了加密的方式。使用 lua 编译器最简单也最直接的方式就是使用 lua 编译器来编译 lua 代码,编译的方式很简单,打开命令行,输入下面的命令lucac -o out.lua source.luatest.lua 文件内容如下:print("test lua"原创 2020-08-05 20:34:06 · 1300 阅读 · 0 评论 -
使用vs生成lua解析器、编译器、链接库
链接库、解释器和编译器lua 是开源的,我们可以从官网下载源代码,其源代码是用纯 c 写的,因此如果想要在 c 项目中嵌入 lua 代码很简单,只需要把 lua 的源代码包含到 c 项目里面即可。但这肯定不是最好的方式,更好的方式是把 lua 源代码编译成链接库,要使用的时候直接包含链接库和必要的头文件即可。另外,除了在 c 或其它项目中使用 lua 之外,我们可能还要单独地执行 lua 文件,甚至直接在命令行交互式地执行 lua 语句,因此还要生成相应的 lua 解释器和 lua 编译器。lua原创 2020-08-05 18:06:46 · 849 阅读 · 0 评论 -
lua正则表达式
在Lua中使用正则表达式进行模式匹配的string库函数有这四个:string.find(str, pattern[, init[, plain]])string.gsub(str, pattern, repl[, n])string.match(str, pattern[, init])string.gmatch(str, pattern)在Lua中进行模式匹配的时候支持的字...原创 2019-12-21 16:51:44 · 4234 阅读 · 0 评论 -
python将json转换成lua
废话不多说,直接上代码:# -*- coding:utf-8 -*-import jsonimport typesimport sysimport osimport os.pathdef space_str(layer): lua_str = "" for i in range(0,layer): lua_str += '\t' return lua_str def...原创 2019-12-21 16:41:05 · 1009 阅读 · 0 评论 -
LuaJavaBridge - Lua 与 Java 交互
在游戏开发中对接android平台时,我们不得不用到java,但是,游戏中的逻辑全是通过lua编写的,最初的方法就是通过中间层 C++,c++通过Jni实现跟java的交互,然后再听过toolua++,把接口暴露给lua,但是这样的就很繁琐,现在有了LuaJ,我们就能够使用lua通过luaj直接调用java了。luaj 主要特征可以从 Lua 调用 Java Class Static Me...原创 2019-12-21 15:14:31 · 681 阅读 · 0 评论 -
VsCode断点调试lua
首先下载安装我们的vscode这个不多说,自己下载然后我们要用到一个插件LuaPanda下载地址:https://pan.baidu.com/s/1bHJcGYeHiQQnne-FzBiu8A 提取码: jvz3下载解压后,然后放到C盘中.vscode的extensions中,然后将解压后里边的两个文件:DebugTools.lua , LuaPanda.lua 拷贝到我们项目的src...原创 2019-10-30 18:43:36 · 2221 阅读 · 0 评论 -
cocos2d 热更新的实现
热更新的中心思想就是一个资源路径优先级的问题,将热更新的资源下载下来,在游戏中优先加载热更新下载的资源已达到热更新的目的,lua虚拟机的重启,文件的重新requireC++版:UpDataLayey.h#ifndef __HOTUPDATER_H__#define __HOTUPDATER_H__#include "cocos2d.h"USING_NS_CC;#includ...原创 2019-09-18 23:17:56 · 489 阅读 · 0 评论 -
lua中table的坑点使用
lua中table的不排序问题:1、table.sort只能排序连续的2、table.insert(tab,k,value)会将后边的键值顶掉local data ={ [1] = 3, [2] = 2, [3] = 11, [4] = 10, [6] = 100}table.sort(data,function(a,b) if...原创 2019-05-21 22:43:48 · 1286 阅读 · 0 评论 -
正则表达式
最近看到字符串的匹配问题,这时候不得不用到正则表达式了,然后就简单的了解下: . 任意字符%a 字母%c 控制字符%d 数字%l 小写字母%p 标点字符%s 空白符%u 大写字母%w 字母和数字%x 十六进制数字原创 2017-12-31 18:32:05 · 1061 阅读 · 0 评论 -
Lua获取时间
local getTime = os.date(“%c”);其中的%c可以是以下的一种:(注意大小写)%aabbreviated weekday name (e.g., Wed)%Afull weekday name (e.g., Wednesday)%babbreviated month name (e.g.原创 2017-10-17 22:30:41 · 294 阅读 · 0 评论 -
lua中的元方法__index __newIndex
__index用于lua中table的查询;__newindex用于lua中table的更新。当一个table中不存在的索引赋值时,解析器就会查找__newindex元方法。如果有这个元方法,解析器就会调用它,而不是进行赋值。如果这个元方法是一个table,解析器就在此table中执行赋值,而不是对原来的table赋值。有元方法__newindexlocal t1 = {}loc原创 2017-09-21 23:58:14 · 466 阅读 · 0 评论 -
Lua中的常用函数库汇总
lua常用的api原创 2017-07-02 01:39:59 · 620 阅读 · 0 评论 -
通过断点调试lua
1、首先安装vs2012及以上的版本;2、下载BabeLua安装包,下载地址:http://pan.baidu.com/s/1qXUtrC43、安装BabeLua,双击安装就可以,这个插件类似于番茄插件;4、启动vs,验证安装,在主菜单是看见LUA就是安装成功了;5、配置项目:配置后保存,在上边选择刚刚配置的项目打开,并将其设置成启动项,完整界面见下图:注意下W...原创 2017-04-12 22:20:14 · 5771 阅读 · 0 评论 -
lua io标准库
1、io.close ([file]) 功能:相当于file:close(),关闭默认的输出文件 2、io.flush () 功能:相当于file:flush(),输出所有缓冲中的内容到默认输出文件 3、io.lines ([filename]) 功能:打开指定的文件filename为读模式并返回一个迭代函数,每次调用将获得文件中的一行内容,当到文件尾时,将返回nil原创 2017-03-22 20:56:02 · 402 阅读 · 0 评论 -
lua迭代器原理
当lua调用for循环中的ipairs(a)时,它会获得三个值:迭代器函数iter、恒定状态a和控制变量的处置0。然后lua调用iter(a,0),得到1,a[1]。在第二次迭代中,继续调用iter(a,1),得到2,a[2],依次类推,直到得到的第一个nil元素为止。pairs与ipairs类似,也是用于遍历一个table中的所有元素。不同的是,它的迭代器函数是lua中的一个基本函数next。原创 2017-03-06 23:44:06 · 707 阅读 · 0 评论 -
lua之select,unpack用法
调用select时,必须传入一个固定实参selector(选择开关)和一系列变长参数。如果selector为数字n,那么select返回它的第n个可变实参,否则只能为字符串"#",这样select会返回变长参数的总数。例子代码:do function foo(...) for i = 1, select('#', ...) do //get the count of the para原创 2017-03-05 12:56:10 · 952 阅读 · 0 评论 -
时间转换
Lua标准库中提供了关于时间函数 os.time()和os.date(),这两个函数需要注意的地方就是加入了时区的概念 os.time() 得到是当前时间的距离1970.1.1.08:00时间的秒数,如果传入的参数小于这个时间,那么就会得到一个,秒数就是负数,会得到一个空值 os.time()1. 不传参的话返回当前时间转化成秒数的结果local原创 2016-12-20 09:47:43 · 272 阅读 · 0 评论 -
lua工具类
local tonumber_ = tonumberfunction tonumber(v, base) return tonumber_(v, base) or 0endfunction toint(v) return math.round(tonumber(v))endfunction tobool(v) return原创 2016-11-23 13:38:42 · 2464 阅读 · 0 评论 -
lua中的面向对象编程
简单说说Lua中的面向对象Lua中的table就是一种对象,看以下一段简单的代码:上述代码会输出tb1 ~= tb2。说明两个具有相同值得对象是两个不同的对象,同时在Lua中table是引用类型的。我在《Lua中的模块与包》中也总结了,我们是基于table来实现的模块,在table中可以定义函数,也就是说,每个table对象都可以拥有其自己的操作。看一段代码:上面的代码创建了一原创 2016-10-22 14:35:07 · 255 阅读 · 0 评论 -
lua调用C语言
在上一篇文章(C调用lua函数)中,讲述了如何用c语言调用lua函数,通常,A语言能调用B语言,反过来也是成立的。正如Java与c语言之间使用JNI来互调,Lua与C也可以互调。 当lua调用c函数时,使用了和c调用lua中的同一种栈,c函数从栈中得到函数,然后将结果压入栈中。为了区分返回结果和栈中的其他值,每一个函数返回结果的个数。这里有个重要的概念:这个栈不是全局的结构,每个函原创 2016-10-22 14:35:01 · 428 阅读 · 0 评论 -
c++与lua的交互
在lua API中,调用一个函数的步骤很简单:1.压入你要调用的函数,使用lua_getglobal。2.压入调用参数。3.使用lua_pcall4.从栈中弹出结果。 举例说明,假设你有这么一个lua函数:function f (x, y) return (x^2 * math.sin(y))/(1 - x)end 那么,我们就可以定义个c函数来封装这个原创 2016-10-22 14:34:57 · 245 阅读 · 0 评论 -
lua中string常用api
local a="abcdefgbbb"string.sub(a,1,3) 字符串截取 返回截取的字符串 print(string.sub(a,1,3)) --abcstring.gsub(a,"b","c",5) 字符串替换,将a中的b替换为c 替换5次,返回替换后的字符串跟替换次数 -- print(string.gsub(a,"b","c",5)) -原创 2016-10-22 14:34:52 · 276 阅读 · 0 评论