协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其他协同程序共享全局变量和其他大部分东西。
一个具有多个协同程序的程序在任意时刻只能运行一个协同程序。

阅读全文 »

lua中,函数是一种第一类值,它们具有特定的词法域。
lua当中函数是一个值,他可以存在变量中(无论全局变量还是局部变量)或table中,可以作为函数参数,可以作为返回值。

阅读全文 »

在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件。
其实lua在游戏开发中可以作为一个强大的保存、载入游戏数据的工具。

阅读全文 »

luaC/C++交互,主要靠lua API和向lua注册好的函数。如下图
20130816205205703
LuaGlue就是让Lua脚本中可调用的C++函数的接口。即那些注册的函数。
这里起关键作用的要数lua_State的结构,这就得讲一下Lua环境和Lua Stack

阅读全文 »

lua作为一种脚本语言,可以快速地开发游戏的原型。提高游戏的开发效率。最熟悉不过的就是作为魔兽世界、博德之门、愤怒的小鸟等游戏的脚本语言。

阅读全文 »

Lua除了是一门扩展的言语外,还是一门“胶水语言”。最著名的就是作为游戏的脚本开发。

这里主要说lua怎样与c交互。
Luac语言通信的主要方法是一个无所不在的虚拟栈。几乎所有的API调用都会操作这个栈上的值。所有的数据交换,无论是LuaC语言或C语言到Lua都通过这个栈来完成。栈可以解决LuaC语言之间存在的两大差异,第一种差异是Lua使用垃圾收集,而C语言要求显式地释放内存;第二种是Lua使用动态类型,而C语言使用静态类型。

阅读全文 »

Lua实现了一个安全的运行环境、一套自动内存管理机制、优秀的字符串处理能力和动态大小数据的处理功能。

阅读全文 »