开发游戏服务器往往有“热更新”的需求,就是在不停止服务程序的情况下,对服务程序进行升级。这里采用lua脚本桥接C++的模式。程序主框架用C++,程序的业务逻辑也是C++(具体的是C++写的DLL),这两者之间用LUA脚本语言进行桥接。当程序运行时,只要改变LUA脚本,即可以选择使用不同的DLL,以实现业务逻辑的升级更新。...
分类:
编程语言 时间:
2014-07-24 17:38:26
阅读次数:
306
面向对象不是针对某一门语言,而是一种思想,在面向过程的语言也可以使用面向对象的思想来进行编程。在Lua中,并没有面向对象的概念存在,没有类的定义和子类的定义,但同样在Lua中可以利用面向对象的思想来实现面向对象的类继承。一、复制表的方式面向对象1234567891011121314151617181...
分类:
其他好文 时间:
2014-07-24 17:04:25
阅读次数:
202
自己给自己庆祝一下。 今天发布了自己第一款开源项目,也算是给it行业做了点贡献,不再是完全的索取者了,希望大家喜欢。支持开源,支持共享! 这款LuaHttpd,是可以用lua做脚本解析器的http服务器。采用异步回调的方式,大大减少服务器消耗。作为第一版[0.1.0.0],已支持Mysql数据库访问...
分类:
其他好文 时间:
2014-07-24 16:58:58
阅读次数:
209
前言元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。那这篇...
分类:
其他好文 时间:
2014-07-24 12:22:05
阅读次数:
320
Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下:123functionMyFunc(param)--Dosomethingend在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有一个...
分类:
其他好文 时间:
2014-07-24 12:18:35
阅读次数:
290
赋值赋值的基本含义是修改一个变量或一个table中字段的值,这个和其它语言没有多少区别,但是对于Lua,有一个特性,它允许“多重赋值”,也就是一下子将多个值赋予多个变量,例如以下代码:123localx1,x2=2,4print(x1)-->2print(x2)-->4在多重赋值中,Lua先对等号右...
分类:
其他好文 时间:
2014-07-24 12:18:25
阅读次数:
256
前言协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。就是说,一个具有多个协同程序的程序在任意时刻只能...
分类:
其他好文 时间:
2014-07-24 12:18:05
阅读次数:
188
前言在很多语言中都有闭包的概念,而在这里,我将主要对Lua语言的闭包概念进行分析与总结。希望对大家学习Lua有帮助。什么是闭包?闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码:1234567891011functionnewCounter()l...
分类:
其他好文 时间:
2014-07-24 12:16:55
阅读次数:
137
前言迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数。每调用一次函数,就返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持。现在我们就用代码...
分类:
其他好文 时间:
2014-07-24 12:10:48
阅读次数:
174
算术操作符Lua支持常规的算术操作符有:”+”(加法),”-”(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-”(负号)。所有的这些操作符都用于实数。例如:x^0.5将计算x的平方根,x^3将计算x的3次方。关系操作符Lua提供的关系操作符有:””,”=”,”==...
分类:
其他好文 时间:
2014-07-24 12:09:25
阅读次数:
270