如何编写简单的lua⼩脚本@@
------------------------第⼀章--lua语⾔基本语法----------------------------
第⼀节:变量与函数
lua是个和C⼗分相像的东西,不过也有很多不同点。引⽤⼀句话,lua除了关键字就是变量。
⽐如:C语⾔⾥⾯想定义⼀个整型变量的话:int i = 0; 但是在lua⾥⾯就简单了: i = 0;省略了变量前⾯的类型关键字。除此之外,lua⾥⾯所有与i = 0;这种格式定义的变量都是全局变量。如何定义⼀个局部变量呢,很简单,在前⾯加local关键字,即:local i = 0; 局部变量⼀般⽤在函数⾥⾯。
弄清楚变量的定义⽅法以后,再来看看lua的语法特点。如果说C语⾔是⽤⼤括号来定义函数的始末,那么lua就⽤函数头与end;来定义函数的始末,⽐如C语⾔:int func() {return 1;}
while语句简单例子表⽰调⽤这个函数的时候会得到⼀个返回值为1的整型,⽽lua:function func() return 1; end; 看出区别了吧,lua定义函数的时候需要加上function关键字 func()后⾯的括号⾥⾯表⽰参数,这⾥不需要,在end; 上⾯的语句就是调⽤函数时要执⾏的语句。需要注明的是,lua⾥⾯的函数的返回值类型同样不需要,lua会⾃动进⾏判断。
当然在lua⾥⾯也可以⽤{}⼤括号来划分block,不过⼀般不需要,就不多做说明了。
下⾯讲逻辑与循环。。。~
第⼆节:逻辑与循环
逻辑语句就是if else/elseif 构成,语法和函数类似,也是⽤end;来结束,⽐如我们要写⼀个判断,当英雄等级⼤于20时胜利,否则失败,⽤heroLevel来表⽰英雄等级(⾄于怎么获得等会再讲)那么就有:if heroLevel > 20 then win(); else fail(); end; win()和fail()是要执⾏的函数。⾄于elseif 就是else ⾥⾯再嵌套⼀个if 写法类似。时刻注意end;结尾。注意,在lua⾥⾯数字变量都是true (包括0) ⽽被判断为false的只有2个,false和nil。nil表⽰空,和null有点像。没有特殊情况把nil当成false⽤就好。
循环语句就⽐较复杂了,⼀般常⽤于数组,在lua⾥⾯循环有很多种,但是常⽤的有3个:
while,for,in。 while最简单,for其次,in⽐较⽅便不过不好查阅。假设我们要实现从1加到100,那么分别就有: PS:在lua⾥⾯注释⽤--⽽不是//,被注释的语句不会执⾏
--while syntax:
v = 1;
result = 0;
while v <= 100 do
result = result + v;
v = v + 1;
end;
--for syntax:
result = 0;
for i = 1, 100, 1 do
result = result + i;
end;
--in syntax:
result = 0;
intArray = {1,2,3,4,5,......,98,99,100};
for index, element in intArray do
result = result + element;
end;
细⼼地朋友想必已经看出来了,while⾃⾝不包含循环变量,for包含⼀个循环变量(这个循环变量默认为局部变量⽽不是全局变量,只能在循环体中使
⽤),in则专门⽤于数组。对于while语句没什么好讲的,很简单,⽽for语句后⾯跟了3个参数,i = 1表⽰定义i这个循环变量⽤于循环体中,中间的100表⽰当i <= 100时执⾏循环体,最后的1是步长,也就是执⾏⼀次循环体i会⾃动增加这⾥的值,在这个例⼦中就是每次加1,加到100,。in有3个参数,先讲in后⾯的参数,是⼀个数组,⽽第⼀个index表⽰当前循环到的数组中的值的下标,第⼆个element则表⽰当前循环到的数组中的值。
被绕昏了有⽊有!在h5⾥⾯循环⽤while和for就够了,⾄于in不⽤管它就好。
接下来讲数组和运算符,讲完这个就可以切⼊主题,看看lua脚本实例了。~
第三节:数组与运算符
lua的数组和C语⾔的数组很相似,都是以下标访问,不过lua的数组是table,不过不⽤管这么多,就当成数组⽤就好。数组和变量⼀样,定义时都不⽤指定类型,直接arr = {1,2,3}; 就⾏了,然后arr[1] = 1就是1,arr[2] 就是2,arr[3]就是3。没错,lua的数组下标是从1开始的⽽不是从0开始,除⾮你⼿动赋值。lua⾥⾯的数组⾮常灵活,⽐如 textArr = {"", ""}; 等等。。。
lua⾥⾯的运算符基本和C语⾔⼀样,不过h5不⽀持 "%"取余, "++"、"--"等的运算符,不过这些都可以⾃⼰定义⼀个函数解决。
有了上⾯的基础,差不多就可以写出丰富的脚本了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。