摘要: 【简单说说Lua中的面向对象】 Lua中的table就是一种对象,看以下一段简单的代码: 上述代码会输出tb1 ~= tb2。说明两个具有相同值得对象是两个不同的对象,同时在Lua中table是引用类型的。我在《Lua中的模块与包》中也总结了,我们是基于table来实现的模块,在table中可以定义 阅读全文
posted @ 2016-11-04 10:24 Ring_1992 阅读(1823) 评论(0) 推荐(1) 编辑
摘要: 【前言】 从Lua5.1版本开始,就对模块和包添加了新的支持,可是使用require和module来定义和使用模块和包。require用于使用模块,module用于创建模块。简单的说,一个模块就是一个程序库,可以通过require来加载。然后便得到了一个全局变量,表示一个table。这个table就 阅读全文
posted @ 2016-11-03 14:06 Ring_1992 阅读(1109) 评论(0) 推荐(0) 编辑
摘要: 【前言】 Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”。这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现;另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table自身保存 阅读全文
posted @ 2016-11-02 15:40 Ring_1992 阅读(589) 评论(0) 推荐(0) 编辑
摘要: 【前言】 元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。 阅读全文
posted @ 2016-11-01 17:37 Ring_1992 阅读(3430) 评论(0) 推荐(0) 编辑
摘要: 【具有默认值的table】 我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下: 可以看到,在代码中,setDefault函数为所有需要默认值的table创建了一个新的元表。如果准备创建很多需要默认值得table,这种方法的开销或许就比较大了。 阅读全文
posted @ 2016-11-01 14:33 Ring_1992 阅读(5214) 评论(1) 推荐(0) 编辑
摘要: 【前言】 协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。就是说,一个具有多个协同程序的程序在任意时 阅读全文
posted @ 2016-10-31 18:02 Ring_1992 阅读(1570) 评论(0) 推荐(0) 编辑
摘要: 首先,说说碰撞的条件:1.rigidbody(刚体),一般用在主动移动的物体上,比如角色。2.collider,碰撞器,一般用于受力物体上,比如障碍块。 发生概率即触发方式: 1.刚体速度足够快,被撞物体的collider足够薄。 2.刚体速度在一定的v,被撞物体也在一定的速度v(被撞物体可移动)。 阅读全文
posted @ 2016-10-31 11:28 Ring_1992 阅读(10971) 评论(0) 推荐(2) 编辑
摘要: 【前言】 迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数。每调用一次函数,就返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持。现在我们就 阅读全文
posted @ 2016-10-31 09:43 Ring_1992 阅读(551) 评论(0) 推荐(0) 编辑
摘要: ipairs (t) Returns three values: an iterator function, the table t, and 0, so that the construction for i,v in ipairs(t) do body end will iterate over 阅读全文
posted @ 2016-10-28 09:41 Ring_1992 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 【什么是闭包?】 闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码: 根据刚刚说的闭包的概念,结合上面的代码,来说说这个概念。闭包=函数+引用环境。上述代码中的newCounter函数返回了一个函数,而这个返回的匿名函数就是闭包的组成部分中的函数 阅读全文
posted @ 2016-10-27 15:01 Ring_1992 阅读(1074) 评论(0) 推荐(0) 编辑