深入学习Lua
一、函数
函数是划分游戏脚本的主要工具。
函数以function关键字开始,后面是函数名然后是参数列表,end关键字结尾
单一参数的例子
function SetName(myString)
print(" ")
print("Your name is :",myString)
print(" ")
end
"myString"传递给了函数,并在函数中使用,函数中的参数是局部变量,调用结束后被回收
Lua可以定义不定长的参数列表,使用(...)代替参数列表,Lua会创建一个局部的名字为arg的table,保存所有调用时参数,以及参数个数(通过arg.n获取)
function HowMany(...)
...
end
返回值
函数使用return关键字并跟上数值(通常为变量名)来返回结果
function TimesTwo(my)
my = my * 2
return my
end
函数还可以返回多个结果
function ThreeDice()
d1 = math.random(1,6) --取随机数
d2 = math.random(1,6)
d3 = math.random(1,6)
myTotal = d1+d2+d3
return d1,d2,d3,myTotal
end
使用return还可以调用另外一个函数
标准库
assert(myValue)()
assert函数可以像处理函数一样运行编译后的代码块(chunk)
dofile(filename)
dofile载入并立即执行Lua脚本文件,通常用来载入定义的文件以备调用,还可以载入数据文件(如存档)
例:dofile("scripts/function.lua")
数学运算符,Lua提供函数级别的可以调用C标准库的数学运算符。
math.abs | 取绝对值 | math.max | 一个集合中的“最大值” | ||
math.acos | 反余弦函数 | math.min | 一个集合中的“最小值” | ||
math.asin | 反正弦函数 | math.mod | 取模 | ||
math.atan | 反正切函数 | math.pow | 两个参数x,y,求x的y次方 | ||
math.atan2 | math.rad | 角度转弧度 | |||
math.ceil | 取不小于函数参数的最小整数值 | math.sin | 正玄 | ||
math.cos | 余玄 | math.sqrt | 计算平方根 | ||
math.deg | 弧度转角度 | math.tan | 正切 | ||
math.exp | 计算e的指数次幂。参数为指数 | math.frexp | 指数计算,两个参数,第一参数为底数,第二参数为指数 | ||
math.floor | 向下取整 | math.ldexp | 指数计算(x*2^y) ,两个参数,第一参数x为,第二参数为指数 | ||
math.log | 计算以e为底的参数x的对数值 | math.random | 随机生成0~1之间的伪随机数 | ||
math.log10 | 同math.log | math.randomseed | 设随机数种子 | ||
常用的函数
math.floor()
floor函数用来向下取整(Lua中没有浮点数或者整数的概念),该函数只是舍去小数部分
如:a = 5.125
b = 5.72
print(math.floor(a))
print(math.floor(b))
输出结果都是
5
5
如果想实现四舍五入,那么给a,b都加0.5即可
math.random()
math.random随机生成0~1之间的伪随机数,Lua可以传入最大值和最小值,随机生成这个范围内的数字
如:mfDie = math.random(1,6)
math.min(),math.max()
math.min()确定一个集合中的最大值和最小值
今天先更新到这里......