触摸精灵找图脚本的详细制作过程 - 脚本精灵-做最方便,最快捷,最好玩的手机游戏脚本 - Powered by Discuz!
脚本精灵-做最方便,最快捷,最好玩的手机游戏脚本
标题: 触摸精灵找图脚本的详细制作过程
作者: xushaoda9& & 时间:
标题: 触摸精灵找图脚本的详细制作过程1. 截取全屏图片
& & 首先要想办法获取全屏图片,获取全屏图片有多种方法:
使用触摸精灵自带的snapshotScreen()函数使用其他方法,如手机系统自带的截图方法
& & 我们推荐使用snapshotScreen()函数来截图:
这个函数截取的图片格式为触摸精灵找图时需要的bmp格式(不压缩的格式),而其他截图方式获取的图片格式为压缩过的png格式,转换成bmp后会有色差,在找图和找色时如果不加模糊值有可能找不到这个函数截图的图片的坐标体系(即画面的旋转角度)与触摸精灵保持一致
& & 使用snapshotScreen()函数截图时,可以将下面的代码保存成脚本,然后进入想要截图的界面,播放一次就会截取一个图片保存到SD卡的根目录,图片名字根据时间生成,所以不会覆盖,配合控制条播放很容易就可以获取一批全屏截图。function main()& & snapshotScreen(string.format(&/mnt/sdcard/%s.bmp&,os.time()));& & mSleep(1000);end
假设我们获取的图片为下图:
2. 扣取要找的图片
& & 将获取的全屏图片传送到电脑上,用Photoshop或者其他图片处理工具打开,然后截取想要找的图片,以photoshop为例,假设我们想要找的图时上图中的Phone图标,那么 :
使用选取工具框选住Phone图标
执行&菜单-&图像-&裁剪&执行&菜单-&文件-&存储为&
就得到了要找的图片如下:
3. 编写脚本
& & 将截取的Phone图片复制为手机SD卡的根目录下的a.bmp文件,那么该图片的绝对路径即为&/mnt/sdcard/a.bmp&(大多数设备的SD卡路径都为/mnt/sdcard/,如果不确定,可以使用RE浏览器进入SD卡根目录,然后便可以看到当前所在的绝对路径)
& & 假如我们想要执行的动作为:如果播放脚本时屏幕上存在Phone图标,那么点击该图标,并显示yes;如果不存在该图标,那么就显示nofunction main()& && && && && && && && && && && && && && && &&&-- main函数,脚本播放时会执行该函数& & x, y = findImage(&/mnt/sdcard/a.bmp&);& &-- 参数为图片的绝对路径,将找到的图片的左上角坐标保存在x和y中,如果没找到,x和y的值为-1& & if x ~= -1 and y ~= -1 then& && && && && && && && &-- 如果x和y不等与-1,说明找到了& && &&&touchDown(0, x+5, y+5);& && && && && && && && &-- 手指按下图片所在的位置,由于x和y是左上角坐标,为了点中图片,x和y都加了5个像素的偏移& && &&&touchUp(0);& && && && && && && && && && && && && && && &-- 手指抬起& && &&¬ifyMessage(&yes&);& && && && && && && && && &&&-- 显示yes& & else& && && && && && && && && && && && && && && && && && && && &&&-- 否则,如果没找到& && &&¬ifyMessage(&no&)& && && && && && && && && && &-- 显示no& & end& && && && && && && && && && && && && && && && && && && && &&&-- if对应的endend& && && && && && && && && && && && && && && && && && && && && && &-- function对应的end
将上述代码保存为脚本,然后在存在Phone图标的界面播放时,会点击该图标后,显示yes;在不存在Phone图标的界面上播放时,只会显示no
作者: EUR__?殳__,& & 时间:
文字提示不是 toask(“文字”)嘛?
新手所以不明白。
作者: 78456& & 时间:
哈哈哈hhhhhnjjhh
作者: katokai& & 时间:
gd!!!!!!!!!!!
作者: su3cl3& & 时间:
请问如果要找截图,找到要去触摸一下两个地方 要如何写入
新手还在学习中
作者: puyung& & 时间:
感?大大的教?受益?多
欢迎光临 脚本精灵-做最方便,最快捷,最好玩的手机游戏脚本 (/)
Powered by Discuz! X3.1只需一步,快速开始
后使用快捷导航没有帐号?
查看: 29441|回复: 44
在找图时,如果需要忽略掉一部分会变动的背景,这时候可以使用透明找图,将要找的图片中不参与比较的颜色填充成一个固定的颜色,然后在找图时指定该颜色为透明色,这样在找图时,即使那部分画面变了,也一样可以找到图片:
如下图是原图,除文字以外的部分背景是变化的,用其他找图时会因为变化的背景导致图片找不到:
那么可以将图片处理成下图这样,然后在找图时指定黑色(0x000000)为透明色,那么就算是背景变化,也可以找到了。
本帖子中包含更多资源
才可以下载或查看,没有帐号?
很好的^ω^& && && && &
这个才是触摸精灵的宝贝呀 对那些色值变动的背景图直接秒杀了
有需要看看
请问如何用代码把黑色的忽略掉?
本帖最后由 s.c 于
17:05 编辑
zqf830215 发表于
请问如何用代码把黑色的忽略掉?
4个找图函数都可以在最后加一个额外的参数,指定图片中的哪个颜色为透明色,如处理后的图片存放在/mnt/sdcard/a.bmp, 透明色填充为黑色,那么可以这样写:
findImage(&/mnt/sdcard/a.bmp&, 0x000000);
findImageFuzzy(&/mnt/sdcard/a.bmp&, 90, 0x000000);
findImageInRegion(&/mnt/sdcard/a.bmp, 100, 100, 200, 200, 0x000000);
findImageInRegionFuzzy(&/mnt/sdcard/a.bmp, 90, 100, 100, 200, 200, 0x000000);
s.c 发表于
4个找图函数都可以在最后加一个额外的参数,指定图片中的哪个颜色为透明色,如处理后的图片存放在/mnt/sdc ...
我看你的手册的后面是90,也就是精确度。那么把这个90换成颜色就是忽略的颜色?
s.c 发表于
4个找图函数都可以在最后加一个额外的参数,指定图片中的哪个颜色为透明色,如处理后的图片存放在/mnt/sdc ...
zqf830215 发表于
我看你的手册的后面是90,也就是精确度。那么把这个90换成颜色就是忽略的颜色? ...
不是,看7楼
Powered byposts - 23,&
comments - 1,&
trackbacks - 0
function main()
--获取屏幕的分辨率
w,h = getScreenResolution();
--显示屏幕长、宽
notifyMessage(string.format("%d,%d\n",w,h));
mSleep(500);
-- 点击函数
appRun("com.tencent.xin");
mSleep(500)
--指定截图保存路径
snapshotRegion("var/mobile/Applications/back.bmp",3,65,100,110);
mSleep(500);
notifyMessage("没有找到");
针对上次截图,实现找图功能:
image_x,image_y = findImageInRegion("var/mobile/Applications/back.bmp",3,65,100,110);
mSleep(500);
if image_x ~= -1 and
image_y ~= -1 then
notifyMessage("找到图");
notifyMessage("没有找到图");
其他截图和找图可以利用类似的方法做到
不积跬步无以至千里
阅读(...) 评论()