触摸精灵使用Lua语言作为底层脚本语言,支持Lua 5.2版本的所有语法与基本库函数,并在Lua语言的基础上添加了一些扩展函数,用于发送触摸事件、找图、找色等高级功能的实现。
用户可参考Lua的官方手册或者其他资料来学习以下基本语法:
输出调试信息到系统日志
logDebug("hello"); -- 输出"hello"到系统日志
进行毫秒级别延迟
mSleep(1000); -- 延迟1秒
以文字提示框的方式通知用户
notifyMessage("hello"); -- 在屏幕上显示"hello"
以震动方式通知用户
notifyVibrate(1000); -- 让设备震动1秒
以播放音频的方式通知用户
notifyVoice("/mnt/sdcard/a.mp3"); -- 播放路径为"/mnt/sdcard/a.mp3"的音频
发送手指按下事件
touchDown(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下 touchUp(0); -- ID为0的手指抬起
发送手指移动事件
touchDown(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下 touchMove(0, 200, 100); -- ID为0的手指滑动到坐标为(200, 100)的点 touchUp(0); -- ID为0的手指抬起
发送手指抬起事件
touchDown(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下 touchUp(0); -- ID为0的手指抬起
获取当前屏幕分辨率
w, h = getScreenResolution(); -- 将屏幕宽度和高度分别保存在变量w、h中 notifyMessage(string.format("%d,%d\n", w, h)); -- 将宽度和高度用提示框显示到屏幕上
获取当前屏幕色彩位数
c = getScreenColorBits(); -- 将屏幕色彩位数保存在变量c中 notifyMessage(string.format("%d\n", c)); -- 将色彩位数用提示框显示到屏幕上
获取指定像素的颜色
c = getColor(100, 100); -- 将坐标为(100,100)的点的颜色保存在变量c中 if c == 0x0000ff then -- 如果该点颜色为0x0000ff(纯蓝色) touchDown(0, 100, 100); -- 那么点击该坐标 touchUp(0); end
获取指定像素颜色的R、G、B三个值
r, g, b = getColorRGB(100, 100); -- 将坐标为(100,100)的点的颜色的R、G、B分别保存在变量r、g、b中 if r == 0x00 and b == 0x00 and g == 0xff then -- 如果该点颜色为0x0000ff(纯蓝色) touchDown(0, 100, 100); -- 那么点击该坐标 touchUp(0); end
全屏找色
x, y = findColor(0x0000ff); -- 在全屏范围找到第一个颜色为0x0000ff的点,将其坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
全屏模糊找色
x, y = findColorFuzzy(0x0000ff, 90); -- 在全屏范围找到第一个颜色为0x0000ff的点,精确度为90%,将其坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
区域找色
x, y = findColorInRegion(0x0000ff, 100, 100, 200, 200); -- 在区域[(100,100)(200,200)]范围找到第一个颜色为0x0000ff的点,将其坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
区域模糊找色
x, y = findColorInRegionFuzzy(0x0000ff, 90, 100, 100, 200, 200); -- 在区域[(100,100)(200,200)]范围找到第一个颜色为0x0000ff的点,精确度为90%,将其坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
全屏找图
x, y = findImage("/mnt/sdcard/a.bmp"); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end x, y = findImage("/mnt/sdcard/a.bmp", 0xffffff); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,忽略图片中颜色为0xffffff(黑色)的点,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
全屏模糊找图
x, y = findImageFuzzy("/mnt/sdcard/a.bmp", 90); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,精确度为90,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end x, y = findImageFuzzy("/mnt/sdcard/a.bmp", 90, 0xffffff); -- 在全屏范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,精确度为90,忽略图片中颜色为0xffffff(黑色)的点,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
区域找图
x, y = findImageInRegion("/mnt/sdcard/a.bmp", 100, 100, 200, 200); -- 在区域[(100,100)(200,200)]范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end x, y = findImageInRegion("/mnt/sdcard/a.bmp", 100, 100, 200, 200, 0xffffff); -- 在区域[(100,100)(200,200)]范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,忽略图片中颜色为0xffffff(黑色)的点,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
区域模糊找图
x, y = findImageInRegionFuzzy("/mnt/sdcard/a.bmp", 90, 100, 100, 200, 200); -- 在区域[(100,100)(200,200)]范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,精确度为90,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end x, y = findImageInRegionFuzzy("/mnt/sdcard/a.bmp", 90, 100, 100, 200, 200, 0xffffff); -- 在区域[(100,100)(200,200)]范围找到第一个路径为"/mnt/sdcar/a.bmp"的图片,精确度为90,忽略图片中颜色为0xffffff(黑色)的点,将其左上角坐标保存到变量x和y中 if x ~= -1 and y ~= -1 then -- 如果找到了 touchDown(0, x, y); -- 点击那个点 touchUp(0); end
全屏截图
snapshotScreen("/mnt/sdcard/a.bmp"); -- 将全屏截图保存到路径为"/mnt/sdcard/a.bmp"的图片中
区域截图
snapshotRegion("/mnt/sdcard/a.bmp", 100, 100, 200, 200); -- 将区域[(100,100)(200,200)]的截图保存到路径为/mnt/sdcard/a.bmp的图片中