跳到主要内容

数学函数

max

max(X, Y)

返回X,Y中较大的值。

min

min(x,y)

返回X,Y中较小的值。

mid

mid(x,y,z)

返回X,Y,Z大小排列后中间的值。

ceil

ceil(x)

返回最接近x并且>=x的整数,也就是向上取整。

flr

flr(x)

返回最接近x并且<=x的整数,也就是向下取整。

sin/cos

sin(x),cos(x)

返回x的正弦/余弦函数值。 注意和math.sin/math.cos不同,这里根据屏幕坐标方向,y是反向的。

x是角度,对应屏幕上逆时针方向,整圆对应0..1。

例如最右边(0度)是0,最左边(180度)是0.5。

atan2

atan2(dx,dy)

根据dx,dy转换到一个角度(0..1)。

角度是对应屏幕逆时针方向。

atan2(0, -1) -- 0.25

sqrt

sqrt(x)

对x开根号,如果x<0,返回0。

abs

abs(x)

返回x的绝对值。

sgn

sgn(x)

返回x的符号,x<0返回-1,x>=0返回1。

band/bor/bxor/bnot/shl/shr/lshr/rotl/rotr

bit运算

band(X, Y) -- x&Y
bor(X, Y) -- x|y
bxor(X, Y) -- x^Y
bnot(X) -- ~X
shl(X, N) -- 左移,右边补0
shr(X, N) -- 算数右移,左边补符号位
lshr(X, N) -- 逻辑右移,左边补0
rotl(X, N) -- 循环左移
rotr(X, N) -- 循环右移

bit运算函数和bit运算符号有差异,函数在参数不合法时不会报异常,但是符号运算会直接抛出异常。

rnd

rnd(X)

返回一个随机数n,0 <= n < x。

注意,返回值不是整数,如果需要整数,使用flr(rnd(x))。

如果x是个数组,那么随机返回table[1]到table[#table]中的一个元素值。

srand

srand(X)

设置伪随机数种子,同样的种子会导致后面的随机序列相同。