摘要: 【前言】 Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”。这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现;另一个优点是,可以像其他table一样操作这个table。为了便于实施这种操作,Lua将环境table自身保存 阅读全文
posted @ 2016-11-02 15:40 Ring_1992 阅读(617) 评论(0) 推荐(0)
摘要: 【前言】 元表对应的英文是metatable,元方法是metamethod。我们都知道,在C++中,两个类是无法直接相加的,但是,如果你重载了“+”符号,就可以进行类的加法运算。在Lua中也有这个道理,两个table类型的变量,你是无法直接进行“+”操作的,如果你定义了一个指定的函数,就可以进行了。 阅读全文
posted @ 2016-11-01 17:37 Ring_1992 阅读(3514) 评论(0) 推荐(0)
摘要: 【具有默认值的table】 我们都知道,table中的任何字段的默认值都是nil,但是通过元表,我们可以很容易的修改这一规定,代码如下: 可以看到,在代码中,setDefault函数为所有需要默认值的table创建了一个新的元表。如果准备创建很多需要默认值得table,这种方法的开销或许就比较大了。 阅读全文
posted @ 2016-11-01 14:33 Ring_1992 阅读(5284) 评论(1) 推荐(0)
摘要: 【前言】 协同程序与线程差不多,也就是一条执行序列,拥有自己独立的栈、局部变量和指令指针,同时又与其它协同程序共享全局变量和其它大部分东西。从概念上讲,线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作的运行。就是说,一个具有多个协同程序的程序在任意时 阅读全文
posted @ 2016-10-31 18:02 Ring_1992 阅读(1637) 评论(0) 推荐(0)
摘要: 首先,说说碰撞的条件:1.rigidbody(刚体),一般用在主动移动的物体上,比如角色。2.collider,碰撞器,一般用于受力物体上,比如障碍块。 发生概率即触发方式: 1.刚体速度足够快,被撞物体的collider足够薄。 2.刚体速度在一定的v,被撞物体也在一定的速度v(被撞物体可移动)。 阅读全文
posted @ 2016-10-31 11:28 Ring_1992 阅读(11148) 评论(0) 推荐(2)
摘要: 【前言】 迭代器就是一种可以遍历一种集合中所有元素的机制,在Lua中,通常将迭代器表示为函数。每调用一次函数,就返回集合中的“下一个”元素。每个迭代器都需要在每次成功调用之后保存一些状态,这样才能知道它所在的位置及如何走到下一个位置,通过之前博文的总结,闭包对于这样的任务提供了极佳的支持。现在我们就 阅读全文
posted @ 2016-10-31 09:43 Ring_1992 阅读(595) 评论(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 阅读(657) 评论(0) 推荐(0)
摘要: 【什么是闭包?】 闭包在Lua中是一个非常重要的概念,闭包是由函数和与其相关的引用环境组合而成的实体。我们再来看一段代码: 根据刚刚说的闭包的概念,结合上面的代码,来说说这个概念。闭包=函数+引用环境。上述代码中的newCounter函数返回了一个函数,而这个返回的匿名函数就是闭包的组成部分中的函数 阅读全文
posted @ 2016-10-27 15:01 Ring_1992 阅读(1118) 评论(0) 推荐(0)
摘要: 【前言】 Lua中的函数和C++中的函数的含义是一致的,Lua中的函数格式如下: 在调用函数时,也需要将对应的参数放在一对圆括号中,即使调用函数时没有参数,也必须写出一对空括号。对于这个规则只有一种特殊的例外情况:一个函数若只有一个参数,并且此参数是一个字符串或table构造式,那么圆括号便可以省略 阅读全文
posted @ 2016-10-27 09:36 Ring_1992 阅读(2321) 评论(0) 推荐(1)
摘要: 【赋值】 赋值的基本含义是修改一个变量或一个table中字段的值,这个和其它语言没有多少区别,但是对于Lua,有一个特性,它允许“多重赋值”,也就是一下子将多个值赋予多个变量,例如以下代码: 在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值,例如以下用法,可以非常简便的交换两个元素的值 阅读全文
posted @ 2016-10-26 18:02 Ring_1992 阅读(658) 评论(0) 推荐(0)