
lua
文章平均质量分 56
leonwei
腾讯专家游戏开发工程师(T12/T4-1) 《黎明觉醒》引擎组组长
展开
-
lua编程 全局变量 环境 模块
1.全局变量与环境 lua中真正存储全局变量的地方不是在_G里面,而是在setfenv(i,table)的table中,所有当前的全局变量都在这里面找,只不过在程序开始时lua会默认先设置一个变量 _G=这个里面的table而已。所以在新设置环境后,如果还想找到之前的全局变量,通常需要附加上为新的table设置元表{_index=_G} 下面的几个例子: a=1 print(a) pr原创 2012-07-24 17:49:56 · 12782 阅读 · 0 评论 -
lua与C(一):C调用lua
lua和c有两种关系: 一种是在lua中调用C的函数,C称为库代码,一种是C中调用lua,C就称为应用程序代码,此时C中包含了lua的解释器 C代码部分 注意在C++中,通常要把lua的一些头文件定义在extern “c”中,因为他们是C语言实现的。 1. 作为应用程序调用lua代码: char* buffer="print(\"hello,原创 2012-08-09 17:41:30 · 10613 阅读 · 0 评论 -
C++ 对象的Lua脚本化
脚本化编程 脚本化编程的最大好处就是简单灵活,另外就是热更新,这在网游中广泛被采用,在网游中,通常采用引擎(c/C++)+脚本(lua/python)的架构,那种SDK性质的代码放在引擎中,这些代码在游戏上线后通常很稳定很少被修改,而真正游戏逻辑的制作就都在脚本层中进行。这样有两个好处:1.脚本层的bug基本不会导致程序的crash,因为是沙盒的。2.对于运行的代码,可以方便的采用热更新修复bu原创 2013-03-04 12:09:33 · 3449 阅读 · 0 评论 -
lua编程注意杂项
1,使用弱引用table去作为备忘录的表,备忘录可以保证共用程序中已有的值,而又不去保存那些程序中已经不再使用的值节省内存 弱引用的table当他的值或键是对象时才会回收,是值(数字、布尔、字符串)是不能回收的 2.io 输入输出流 io.input() io.output()返回当前的输入输出流,默认是标准的 同时通过io.input(p)可以设置当前的输入流为p 通原创 2013-04-27 09:54:34 · 1053 阅读 · 0 评论