协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其他协同程序共享全局变量和其他大部分东西。
一个具有多个协同程序的程序在任意时刻只能运行一个协同程序。
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
实现了一个安全的运行环境、一套自动内存管理机制、优秀的字符串处理能力和动态大小数据的处理功能。