今天学习的内容还蛮有意思的,让我兴奋了一下~ 笨木头花心贡献,哈?花心?不,是用心~ 转载请注明,原文地址: http://www.benmutou.com/archives/1714 文章来源:笨木头与游戏开发 1.迭代器 什么是迭代器?别傻了,我最讨厌的就是名词解释了,反正就是用来遍历集合的一种方式. 比方,我们最经常使用的pairs,例如以下代码: local t = {"fdsd", "445"}; for k, v in pairs(t) do print…
哎.周五晚上我都还这么努力看书.真是好孩子.(小若:不想吐槽了) 事实上我都准备rs=1&u=http%3A%2F%2Fwww%2Ebenmutou%2Ecom%2Farchives%2F1733&p=baidu&c=news&n=10&t=tpclicked3_hc&q=25013069_cpr&k=%CD%E6%D3%CE%CF%B7&k0=%B4%F2%D3%A1&kdi0=1&k1=%D7%C0%D7%D3&k…
这次要介绍几个事实上非常easy,可是一定要小心的返回值规则. 笨木头花心贡献,哈?花心?不,是用心~ 转载请注明.原文地址: http://www.benmutou.com/archives/1736 文章来源:笨木头与游戏开发 1.resume的參数 resume函数除了第一个參数是协同程序外,还能继续传其它參数,例如以下代码: local co = coroutine.create(function(name) print(name); end); coroutine.resume(co,…
没想到距离上一篇基础补充已经过了1年多了,近期准备捡回Lua,把基础都补补,今天来聊聊Lua的函数吧~ 0.环境 我突然对Lua又大感兴趣的最主要原因是,Cocos Code IDE開始浮出水面了,它是Cocos2d-x官方出的一款专门针对Cocos2d-x+Lua或JS的IDE.试着用了,尽管不能说非常完美.但,非常值得期待. 所以,本文使用的Lua编辑器就选它了,大家就任意吧~ 笨木头花心贡献,哈?花心?不.是用心~ 转载请注明,原文地址:http://www.benmutou.com/ar…
关于迭代器的内容, 另一点点,只是已经无关紧要了.应该算是一种扩展吧.就一起来开开眼界好了~ 笨木头花心贡献.哈?花心?不.是用心~ 转载请注明,原文地址: http://www.benmutou.com/archives/1721 文章来源:笨木头与游戏开发 1.避免创建闭合函数 我们之前一直在说的迭代器.都是要创建闭合函数.但,大家有没有想过,有了恒定状态和控制变量之后.是不是就不须要闭合函数了? 先来回想一下之前的迭代器函数: function dieDaiQi(t) local i =…
Lua学习笔记4. coroutine协同程序和文件I/O.错误处理 coroutine Lua 的协同程序coroutine和线程比较类似,有独立的堆栈.局部变量.独立的指针指令,同时又能共享全局变量 但coroutine又和多线程程序不同,首先一个多线程程序可以同时运行多个单线程,但协同程序只能串行,也就是说同一时刻只能有一个协同程序在运行,并且这个协同程序将一直占用处理器直到被显式的挂起. 基本的函数 coroutine.create(f) 创建一个协同程序,返回coroutine, f是…
近期2天都没有写新的文章了.主要是近期的内容没有特别有意思的. 之前的协同程序也临时没有感觉到特别适用的地方.今天在看数据结构的部分,也是没多大意思(不代表没用). 但是突然发现了一个有意思的地方,那就是--连接大量字符串的时候.怎样解决效率问题. 笨木头花心贡献.哈?花心?不.是用心~ 转载请注明,原文地址: http://www.benmutou.com/archives/1744 文章来源:笨木头与游戏开发 1.预备知识.在Lua中获取系统时间 为了直观地看到效率的区别,我们要计算一下代码…
昨天遇到另外一位独立游戏开发人员,所以多聊了一会,然后-然后就没有看书了.(小若:借口!借口! ) 今天来聊聊错误处理吧.只是毕竟这仅仅是前面的章节.书上的内容似乎有点一笔带过的味道. 没关系,简单更好~ 笨木头花心贡献,哈?花心?不,是用心~ 转载请注明,原文地址: http://www.benmutou.com/archives/1728 文章来源:笨木头与游戏开发 1.红色警报--error 我们应该能常常看到相似下面的错误信息: [LUA-print] LUA ERROR: [strin…
协同程序(coroutine)与线程(thread)差不多,也就是一条执行序列,拥有自己独立的栈.局部变量和指令指针,同时又与其他协同程序共享全局变量和其他大部分东西.从概念上讲线程与协同程序的主要区别在于,一个具有多个线程的程序可以同时运行几个线程,而协同程序却需要彼此协作地运行.就是说,一个具有多个协同程序的程序在任意时刻只能运行一个协同程序,并且正在运行的协同程序只会在其显式地要求挂起(suspend)时,它的执行才会暂停. Lua将所有关于协同程序的函数放置在一个名为“coroutine…
Content: 前两天把Lua的协同程序概念看了一下,不是很懂,只能说<Programming In Lua>中把它解释成线程让人很好的理解起来,但是真正去看的时候,收获并不是很大.第一个例子是消费者和生产者的例子,就没有怎么看懂.生产者-消费者问题是在学操作系统的时候学的,感觉基本概念还是明白的.Lua这本书首先给了这样一个例子,虽然说是消费者驱动,很简单的一个例子其实有好几点都是第一次不能理解的,这里总结一下,自己记录一些东西. 1. 源程序 function producer() wh…