黑铁时代
Programing is not only one kind of technology, but also one kind of art.
上一页 1 2 3 4 5 6 ··· 8 下一页
摘要: 1. 注册表 注册表是一个普通的table,我们可以将c函数中需要保存的状态都存储在注册表中,注册表是可以被多个c模块共享的。 由于注册表是一个普通table,我们同样可以在栈中对其进行操作,只是这个table的索引是由一个常量LUA_REGISTRYINDEX进行索引。 如何向注册表中存入一个值对 阅读全文
posted @ 2016-07-12 14:48 黑铁时代 阅读(345) 评论(0) 推荐(0) 编辑
摘要: lua程序其实本身并不能执行,它必须依靠c语言编写的解释器来解释执行,或者说解释器为lua脚本的执行,提供了一个运行环境(lua_state),其中包括函数堆栈,内存分配和回收等机制。 理论上,lua可以使用c提供的功能,如果需要在lua中使用我们特需的功能,我们可以通过编写自己的c库来进行扩展,当 阅读全文
posted @ 2016-07-11 17:16 黑铁时代 阅读(484) 评论(0) 推荐(0) 编辑
摘要: 数学库: 三角函数:math.sin, math.cos, math.tan, math.asin, math.acos 都以弧度为单位; 指数和对数函数:exp, log, log10; 取整函数:math.floor, math.ceil; 最大最小函数:math.max math.min; 随 阅读全文
posted @ 2016-07-07 18:54 黑铁时代 阅读(492) 评论(0) 推荐(0) 编辑
摘要: 对象的特点是: 对象拥有自己的数据,两个对象即使数据完全相同,他们也是相互独立的; 对象之间可以共享对象的行为,也就是他们的方法是一致的; lua中的table就非常适合作为一个对象,可以在table中方便的定义属性和方法: Point = { x = 0, y = 0 } Point.set = 阅读全文
posted @ 2016-07-07 17:03 黑铁时代 阅读(619) 评论(0) 推荐(0) 编辑
摘要: io操作: io.input(filename):指定一个输入流,可以是标准输入stdin,也可以是一个文件路径,返回一个文件句柄; io.output(filename):指定一个输出流,可以是标准输出stdout,也可以是一个文件路径,返回一个文件句柄; io.lines():迭代器,从指定的输 阅读全文
posted @ 2016-07-06 16:03 黑铁时代 阅读(1103) 评论(0) 推荐(0) 编辑
摘要: 1. table: a = {}; a[x]不等价于a["x"],a["x"]等价于a.x,a[0]不等价于a["0"]; #a取出的是table中连续数组的长度,从下标1开始;如果a[1] = 2; a[10000] = 3; #a是1;如果a[2] = 1; #a是0; a = {[1]="a" 阅读全文
posted @ 2016-07-05 16:16 黑铁时代 阅读(237) 评论(0) 推荐(0) 编辑
摘要: lua中的协程和线程类似: 1. 协程拥有自己的独立的栈,局部变量,和指令; 2. 所有协程都可以共享全局变量; 3. 协程不能像线程那样并行执行,协程之间需要相互协调执行,同一个时刻只能运行一个协程; 如何使用协程: coroutine.create:创建一个协程,返回一个协程句柄; corout 阅读全文
posted @ 2016-07-05 15:35 黑铁时代 阅读(5123) 评论(0) 推荐(0) 编辑
摘要: 游戏的在进行一次渲染的时候,通常会提交大量的渲染对象给gpu。在这些需要渲染的对象中,并不是所有对象都会出现镜头中,即有一部分对象是不可见的。 通常有两种方式来完成不可见对象的剔除工作: (1)直接交给图形库帮我剔除,即性能消耗在gpu端; (2)在提交图元给gpu前,在游戏逻辑中进行剔除,即性能消 阅读全文
posted @ 2016-06-15 13:06 黑铁时代 阅读(1514) 评论(0) 推荐(0) 编辑
摘要: 1. 指针数组 定义:int *p[n],由于[]的优先级高于*,p和[]结合成一个数组,该数组的元素存储的是int类型的指针,由于数组内容是指针,因此p+1的步长是sizeof(int*),在32位机器上,步长通常是4个字节; int a[3][4]; int *p[3]; // 指针数组,具有3 阅读全文
posted @ 2016-06-14 14:44 黑铁时代 阅读(720) 评论(0) 推荐(0) 编辑
摘要: lua 是一种脚步语言,语言本身并不具备面向对象的特性。 但是我们依然可以利用语言的特性,模拟出面向对象的特性。 面向对象的特性通常会具备:封装,继承,多态的特性,如何在lua中实现这些特性,最主要的就是利用了lua的table和metatable。 table是一种强大的关联数组,它可以使用数字和 阅读全文
posted @ 2016-05-18 17:17 黑铁时代 阅读(702) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 8 下一页