Cocos2dLua
新一下的兰天
紧要关头不放弃,绝望就会变成希望
展开
-
cocos2d-Lua之局部变量与全局变量
lua作为一门脚本语言,变量的声明不需要加变量类型,比如:a = 5 //默认就是整型a = 5.5 //默认就是浮点类型a = "hello" //默认就是字符串类型当然lua脚本语言跟其他编程语言一样也是有全局变量和局部变量的,像前面变量a那样声明默认就是全局变量local LuaLessionOne = class(“LuaLessionOne”, function()原创 2016-06-15 09:17:42 · 2076 阅读 · 0 评论 -
Cocos2d-Lua之string
一、string的查找操作格式:_start, _end = string.find(字符串, 要查找的字符串, 起始查找位置) //若缺省起始查找位置,则从第一个位置开始查找,并返回查找到的起始位置和结束位置function strfind() local a = "helloworldhelloworld" local i = 0 repeat _s原创 2016-06-17 10:04:37 · 472 阅读 · 0 评论 -
Cocos2d-Lua之随机数
不管是什么语言,所生成的随机数都是伪随机数,是根据一定的计算法则求出来的。Lua语言是利用两个函数来生成随机数:math.randomseed(值) //提供种子值math.random(val1, val2) //随机生成一个在val1和val2之间的随机数,若全部缺省,则默认生成0-1之间的随机数,若只有一个val1,则生成1-val1之间的随机数这里利用系统时间os.time的倒置原创 2016-06-17 19:29:07 · 2179 阅读 · 0 评论 -
Cocos2d-Lua之math库
math.pi //圆周率常量math.abs(-15) //求绝对值,为15math.ceil(5.5) //向上取整,为6math.ceil(5.5) //向下取整,为5math.round(5.5) //四舍五入取整,为6math.mod(14, 5) //取余,为4math.deg(math.pi) //根据圆周率换算成角度,为180度原创 2016-06-17 19:44:39 · 842 阅读 · 1 评论 -
Cocos2d-Lua之文件操作
一、文件打开操作格式:file, msg = io.open("文件的绝对路径名", "打开方式") --打开方式有r, w, a, r+, w+, a+,跟C/C++的打开方式是一样的,返回文件和是否正确打开的信息二、文件读取方式格式:file:read("*line") --读取文件中的一行,若缺省默认也是读取一行file:read("*all") --读取文件中的全部内原创 2016-06-17 20:18:25 · 3828 阅读 · 0 评论 -
Cocos2d-Lua之异常处理
Lua中的异常处理,利用error对异常抛出,利用pcall进行捕获。格式:error("错误信息")res, msg = pcall(抛出错误的函数, 函数参数列表) --pcall中的第一个参数是抛出错误的函数,后面的参数是这个抛出错误的函数的参数列表, 返回的第一个值是个boolean型的,如果抛出错误的函数正确返回,res为true,否则为false,不管抛出错误的函数是否正确返回,都原创 2016-06-17 21:16:22 · 1490 阅读 · 0 评论 -
Cocos2d-Lua之协同程序
协同程序与操作系统中的线程类似,但工作方式是不同的,例如线程的时间片调度算法,当某个线程的时间片用完,系统会自动让该线程等待,让后面的线程运行。而对于协同程序,除非一个正在运行的协同程序被挂起,否则就一直运行到结束才能让其他协同程序运行。举个例子:function coroutineFun() local co = coroutine.create(function(a, b)原创 2016-06-18 08:04:27 · 735 阅读 · 0 评论 -
Cocos2d-Lua之闭包
对于function中定义的local变量只能活在这个function中,出了这个function就不存在了。function bag(a) local x = a x = x + 1 print(x)endfor i = 1, 10 do bag(3) bag(10) print("-----------------")end输出结果:这样的输出原创 2016-06-18 08:43:42 · 552 阅读 · 0 评论 -
Cocos2d-Lua之面向对象的封装
Lua作为一门脚本语言,不同于C++,java这类的高级语言,Lua中的面向对象只能通过封装与继承(只能是单继承)实现,并没有多态,连重载都不支持的Lua拿什么资本支持多态呢。先说一下类的格式:local 类名 = class("类名")--类内部定义的成员函数和成员变量return 类名举个例子:--UsrClass.lua文件local Usr = class("Usr")--id,name,原创 2016-06-18 09:40:58 · 1384 阅读 · 0 评论 -
Cocos2d-Lua之table的排序
一、冒泡排序冒泡排序是最基本的一种排序算法,具体的件数据结构,这里就说说用Lua语言是怎么写的a = {2, 56, 7, 36, 10, 1, 55, 9}function sortarray() len = table.maxn(a) for i = 1, len do for j = i + 1, len do if(a[i] > a[j原创 2016-06-17 08:52:35 · 757 阅读 · 0 评论 -
Cocos2d-Lua之Lua文件的加载与运行
一、dofile格式:dofile("绝对路径名")dofile会加载绝对路径中的lua文件,并且执行。--aa.lua文件print("aaaaaaaaaaaaaaaaaaa")--test.lua文件dofile("D:\\MyGame\\firstgame\\src\\app\\scenes\\aa.lua")输出结果:可以看到成功加载并且同时执行加载的lua文件。二、loadfile格式原创 2016-06-17 08:34:22 · 2788 阅读 · 0 评论 -
Cocos2d-Lua之table的删除与插入
一、table的插入table.insert(tablename, idex, value) //在tablename中的idex位置插入value值table.insert(tablename, value) //若缺省位置参数,则在tablename的尾部插入value值a = {1,2,3, x = 5, y = 7, 9, nil, 10, m = 11}a[10] = 12a原创 2016-06-16 21:14:22 · 1202 阅读 · 0 评论 -
Cocos2d-Lua之函数
Lua脚本语言的函数类型有很多种,不仅包括常见的无参无返回,有参无返回,有参有返回,无参有返回,默认参数,还有不定参数的情况。下面一一举个例子--无参无返回fun()function fun() print("fun()")end输出结果:--有参无返回fun(5, 6)function fun(a, b) print(a + b)end输出结果:--有参有返回res =原创 2016-06-15 15:34:24 · 1099 阅读 · 0 评论 -
Cocos2d-Lua之类型及类型转换
一、Lua类型Lua中的类型只有四种: 1. number 2. string 3. boolean 4. function根据其他语言后三种类型就不解释了,第一种类型number,既包括整型,也包括浮点型,统一都是number型。lua用type函数打印类型:local a = 5local b = 5.5;local c = "hello";local d = true;print原创 2016-06-15 14:36:24 · 1956 阅读 · 0 评论 -
Cocos2d-Lua之运算符
一、二元运算符+ - * / % ^^是指数运算。这里就说一下对于浮点数向上,向下取整和四舍五入取值的方法:print(7 / 2)print(math.floor(7 / 2))print(math.ceil(7 / 2))print(math.round(7 / 2))输出结果:可以看到math.floor是向下取整,math.ceil是向上取整,math.round是四舍五入取原创 2016-06-15 19:43:47 · 1281 阅读 · 0 评论 -
Cocos2d-Lua之赋值
一、单赋值a = 10二、多赋值a, b = 10, 15print("a = " .. a .. ", b = " .. b)输出结果:这里变量和值的个数有一个关系:当 变量的个数 < 值的个数 时 多余的值被丢弃当 变量的个数 > 值的个数 时 多余的变量被制为nil三、交换赋值a, b = 10, 15print("a = " .. a .. ", b = " .. b)原创 2016-06-15 20:00:11 · 349 阅读 · 0 评论 -
Cocos2d-Lua之if分支语句
a, b = 5, 6if(a > b) then print("a > b")elseif(a < b) then print("a < b")else print("a = b")end输出结果:这里记住if的格式就可以了,if和elseif后面要加then,elseif中间是没有空格的,最后要加end表示结束。原创 2016-06-15 21:37:18 · 729 阅读 · 0 评论 -
Cocos2d-Lua之循环语句
一、while循环a = 1while a < 9 do print(a) a = a + 1end 输出结果: 二、repeat until循环repeat print(a) a = a + 1until a > 9输出结果:repeat until就相当于C++语言中的do while循环三、for循环for i = 3, 10, 2 do if原创 2016-06-16 08:13:19 · 1634 阅读 · 0 评论 -
Cocos2d-Lua之table
一、一维数组a = {1,2,3, x = 5, y = 7, 9, nil, 10, m = 11}a[10] = 12a.m = "a.m"a["n"] = "a[n]"len = table.maxn(a)print("len = " .. len)for i = 1, len do print(a[i])endprint("a.x = " .. a.x)print(原创 2016-06-16 20:44:33 · 864 阅读 · 0 评论 -
Cocos2d-Lua之table的遍历
一、便利方式1a = {1,2,3, x = 5, y = 7, 9, nil, 10, m = 11}a[10] = 12a.m = "a.m"a["n"] = "a[n]"for k, v in next, a do print(k .. " : " .. v)end输出结果:k是下标,若存在key键,则为key键,v是值。可以看到用next遍历会自动过滤掉nil,并把正常下标的原创 2016-06-16 21:02:14 · 741 阅读 · 0 评论 -
Cocos2d-Lua之面向对象的继承
--UsrClass.lua文件local Usr = class("Usr")--id,name,age分别为Usr.id = 1Usr.name = "张三"Usr.age = 20function Usr:ctor(name, num, age) self.name = name self.id = num self.age = age print("原创 2016-06-18 10:36:00 · 580 阅读 · 2 评论