协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其他协同程序共享全局变量和其他大部分东西。
一个具有多个协同程序的程序在任意时刻只能运行一个协同程序。
lua函数与闭包
发表于
更新于
在lua中,函数是一种第一类值,它们具有特定的词法域。lua当中函数是一个值,他可以存在变量中(无论全局变量还是局部变量)或table中,可以作为函数参数,可以作为返回值。
lua面向对象
发表于
更新于
把lua文本文件“编译”成二进制的文本
发表于
更新于
当你发布lua时,你或许不想用户看到你的lua源码,更不想用户修改你的lua代码和系统内部的秘密,那就需要用别的方式来发布。
使用Lua处理游戏数据
发表于
更新于
在之前lua学习:lua作配置文件里,我们学会了用lua作配置文件。
其实lua在游戏开发中可以作为一个强大的保存、载入游戏数据的工具。
lua与C/C++程序的整合
发表于
更新于
lua与C/C++交互,主要靠lua API和向lua注册好的函数。如下图
LuaGlue就是让Lua脚本中可调用的C++函数的接口。即那些注册的函数。
这里起关键作用的要数lua_State的结构,这就得讲一下Lua环境和Lua Stack。
游戏中的Lua
发表于
更新于
lua作为一种脚本语言,可以快速地开发游戏的原型。提高游戏的开发效率。最熟悉不过的就是作为魔兽世界、博德之门、愤怒的小鸟等游戏的脚本语言。
lua与配置文件
发表于
更新于
lua的一项重要用途就是作为一种配置语言(configuration language)。
lua state
发表于
更新于
Lua除了是一门扩展的言语外,还是一门“胶水语言”。最著名的就是作为游戏的脚本开发。
这里主要说lua怎样与c交互。Lua和c语言通信的主要方法是一个无所不在的虚拟栈。几乎所有的API调用都会操作这个栈上的值。所有的数据交换,无论是Lua到C语言或C语言到Lua都通过这个栈来完成。栈可以解决Lua和C语言之间存在的两大差异,第一种差异是Lua使用垃圾收集,而C语言要求显式地释放内存;第二种是Lua使用动态类型,而C语言使用静态类型。
lua环境与模块
发表于
更新于
Lua实现了一个安全的运行环境、一套自动内存管理机制、优秀的字符串处理能力和动态大小数据的处理功能。