
lua
kavenGw
这个作者很懒,什么都没留下…
展开
-
lua总结
lua环境lua环境由所有可操作的数据构成。 如编译好的函数,变量以及其他运行时内存。 这些数据保存在一个称作lua_State的结构中。所有lua应用程序都要求至少有一个lua_State。 如果需要还可多个(如需要为两个不同的系统保存不同的数据时)。Lua环境是用来发送和接受数据的地方,它利用栈来达到该目的。 Lua栈不同于系统栈,它只能通过Lua的API函数访问。元表Lua中得每个值都原创 2016-08-21 20:24:59 · 256 阅读 · 0 评论 -
Lua C
转自lua程序设计第二版Lua和C通信的主要方法时一个无所不在的虚拟栈。几乎所有的API调用都会操作这个栈上的值。所有的数据交换,无论是Lua到C还是C到Lua都通过这个栈来完成。 还可以通过这个栈来保存一些中间结果。以及解决Lua和C语言中间的两大差异: * Lua使用垃圾收集,而C要求显示地释放内存 * Lua使用动态类型,而C使用静态类型重入Lua没有定义任何全局变量,它将所有的状态都保转载 2017-02-09 22:25:53 · 381 阅读 · 0 评论 -
lua & c & c++
LuaGluelua可以让程序员开发在lua脚本中调用c/c++函数的接口。 我们把这些接口称做luaGLue函数。lua_State* pLuaState = lua_open() luaopen_base(pLuaState) lua_iolibopen(pLuaState) lua_strlibopen(pLuaState) lua_mathlibopen(pLuaState) l原创 2016-08-21 23:59:34 · 333 阅读 · 0 评论 -
Cocos仿unity按钮机制
去年做androidtv游戏时写的,记录在别的博客网站,一并拿过来。虽然现在已经投入unity的怀抱,加上看了廖大大和触控的工资纠纷。--根据不同的平台绑定按键if cc.Application:getInstance():getTargetPlatform() == 2 then GSKeyCode = { left = 26, right = 27,原创 2017-02-25 11:49:22 · 349 阅读 · 0 评论 -
lightuserdata
转自lua程序设计第二版light userdata轻量级userdata 一种表示C指针的值(即void *),由于是一个值,所以不用创建它。要将一个轻量级userdata放入栈中,只需调用lua_pushlightuserdata void lua_pushlightuserdata(lua_State *L,void *p);轻量级userdata不是缓冲,而是一个指针而已,没有元表,就像转载 2017-02-13 13:14:45 · 979 阅读 · 0 评论 -
Lua C用户自定义类型
userdatauserdata提供一块原始的内存区域,可以用来存储任何东西。 lua中userdata没有任何预定义的操作。//根据指定的大小分配一块内存,并将对应的userdata压入栈中,最后返回这个内存块的地址void *lua_newuserdata(lua_State *L,size_t size);元表一种辨别不同类型的userdata的方法时,为每种类型创建一个唯一的元表。每当创转载 2017-02-13 12:40:06 · 439 阅读 · 0 评论 -
Lua C 字符串和数组操作
数组操作在Lua中,“数组”只是table的一个别名,像lua_settable和lua_gettable这种操作table的函数,也可以用于操作数组。 然而API为为数组操作提供了专门的函数。 * 出于性能考虑,通常会在算法中用循环来访问数组 * 为了方便,像字符串key,整数key是很常用的//index表示在栈中的位置,key表示元素在 table中的位置void lua_rawge转载 2017-02-10 12:50:53 · 2152 阅读 · 0 评论 -
Lua Module
常规写法 local M = {} local modelName = ... _G[modelName] = M setmetatable(M,{__index = _G}) setfenv(1,M) return M --package.seeall让原来的_G依然有效 --等效于setmetatable(M,{__index = _G原创 2016-10-22 00:37:50 · 333 阅读 · 0 评论 -
lua cocos class方法
对于一个quick-cocos开发者,感觉对这个核心的class方法还是应该深入的理解一下。 --类名, ...父类 function class(classname, ...) --首先生成一个父类table父类 local cls = {__cname = classname} --遍历所有父类 local super原创 2016-08-21 23:47:22 · 330 阅读 · 0 评论 -
lua自定义迭代器
闭合函数 function diedaiqi(t) local i = 0 return function() i = i + 1 return t[i] end end通过while local iter = diedaiqi(t) while true do原创 2016-08-21 23:54:22 · 360 阅读 · 0 评论 -
lua协同程序
基本使用 co = coroutine.create( function(a,b,c) print(“co”,a,b,c) end ) coroutine.resume(co,1,2,3) —>co 1 2 3在第一次调用resume时,并没有对应的yield在等待它,一次所有传递给resume的额外传输都将视为协原创 2016-08-21 20:35:10 · 204 阅读 · 0 评论 -
lua table封装
具有默认值的table常规table中得任何字段默认都是nil,通过元表就可以很容易的修改这个默认值。 function setDefault(t,d) local mt = { __index = function() return d end } se原创 2016-08-21 20:28:58 · 409 阅读 · 0 评论 -
lua实现更新服务器
对于一个服务器而言,每次修改代码然后手动上传提交再编译再运行肯定是我这种懒惰的人无法接受的,基于自己之前用lua写过的cocos热更新的代码完善了一下。lua调用系统命令os.execute(commond)sshpass最开始写cocos热更新时使用ssh,发现这个之后就好比发现新大陆,这里就给一个github链接 sshpass用法"sshpass -p " .. Password .. "原创 2017-02-07 10:42:08 · 679 阅读 · 0 评论