多点找色进阶

横幅.gif(3.77 K)

2015/12/23 17:27:56

本文由按键学院提供技术支持

按键学院交流①群(已满):376122403按键学院交流②群(已满):372671254按键学院交流③群(快满):170084238按键学院安卓①群:115768679多点找色作为写脚本最常见的命令之一,基本上在所有脚本中都有用到,功能也很清楚,就是在指定的范围内找到根据我们设定的相对点颜色寻找满足条件的界面特征,并返回寻找到的第一个特征的坐标,相比于找图,具有简单方便的优势(不需要截图再放到附件),还能够支持多分辨率的自适应,并且能够根据参数来设定搜索顺序,他如此之强----但我还想让他更强,有时候,我们在界面上寻找的特征不止一个,我希望能全部找出来,那么我们需要来小小的改动一下多点找色。

分隔线.jpg(3.25 K)

2015/12/23 17:27:56

恩,怎么说呢!直接贴代码!

Function 返回多个点的坐标数组(sx, sy, ex, ey, 主颜色,次颜色,搜索次序,相似度)

If sx = 0 and sy = 0 Then

If ex = 0 and ey = 0 Then

ex = GetScreenX()

ey = GetScreenY()

End If

End If

KeepCapture

Dim TickCount()

Dim intX,intY

Dim arrx = Array()

Dim arry = Array()

Dim num =0

Dim 范围 = 获取大小(次颜色)

For i = sx To ex Step 范围(0)

For j = sy To ey Step 范围(1)

FindMultiColor i,j,i+范围(0)-1,j+范围(1)-1, 主颜色, 次颜色, 搜索次序,相似度,intX,intY

If intX > -1 Then

arrx(num) = intX

arry(num) = intY

num = num + 1

End If

Next

Next

Dim arrxy = Array(arrx,arry,num)

返回多个点的坐标数组 = arrxy

ReleaseCapture

End Function

Function 获取大小(str)

Dim arr = Split(str,",")

Dim xy = Array()

Dim x = 0

Dim y = 0

Dim i = 0

For Each n In arr

Dim 第一个位置 = InStr(1, n, "|")

If Int(Left(n,第一个位置 - 1)) > x Then

x = Int(Left(n,Instr(1,n,"|")-1))

End If

Dim n2 = StrCut(n, 1,第一个位置)

Dim 第二个位置 = InStr(1, n2, "|")

If Int(Left(n2,第二个位置 - 1)) > y Then

y = Int(Left(n2,第二个位置 - 1))

End If

Next

xy = Array(x,y)

获取大小 = xy

End Function

Dim t = TickCount()

Dim arr = 返回多个点的坐标数组(0,0,0,0,"BAB7B4-101010", "98|0|B9B7B0-101010,98|98|B7B4AF-101010,0|98|B5B4B0-101010", 0, 0.9)

For i = 0 To arr(2)-1

TracePrint arr(0, i) & "," & arr(1, i)

Next

TracePrint TickCount() - t复制代码

我们注意到多点找色含有范围,那么我们直接在这个范围上下功夫,进行多次范围寻找,再将每次的坐标记录下来,记录到一个数组中,最后返回这个数组,就实现了返回多个坐标,那么问题就在于这个范围如何判定,我们当然可以将这个范围改成单个的像素点,然后遍历整个屏幕,但是这样会产生2个问题,一是时间,这种方式遍历一遍需要10来秒,这还是因为我使用的720*1280的分辨率,如果是1080*1920,那么可能要半分钟,这么低的效率即使找到也毫无意义,二是返回的点,我们一般取的点为了适用多分辨率,都会取在大色块的中间,那么就有可能同一个特征返回多个坐标,这虽然逻辑上没有问题,却不符合我们的需求。因此逐像素的方式不靠谱,我们需要自己去设定这个范围。

这里呢,我采用根据取的点的最大宽高的值来作为范围,这样可以解决上述方式的两个缺点,问题就是写法麻烦点,并且取点也要相对谨慎(第一个点最好在所有取的点的左上方来保证所有偏移量都是正数,当然也可以通过代码来解决这个问题,你们可以根据这个自己改写~),当然这是一次写好终生受益的事情,之后可以直接使用“返回多个点的坐标数组”这个函数而不需要了解他内部实现的方法。

代码中我寻找的点为图标的四个角落的点:

1.png(33.65 K)

2015/12/23 17:27:56

恩,放大点瞧瞧:

2.png(8.54 K)

2015/12/23 17:27:56

这里为了更加清晰我寻找了边缘点,大家取点请尽量取色块中间的点哦。好了,我们来看看整个图中,有多少这样的图标呢?

3.png(35.95 K)

2015/12/23 17:27:56

根据肉眼看到的,应该是7个,分别是第一排的4个和第二排的3个,那么运行一下看看,返回了什么:

4.png(53.74 K)

2015/12/23 17:27:56

可以看出,确实返回了所有的坐标,使用的时间为49毫秒,这个延时完全可以接受。唔,哪里能更好的实验出他的强大呢?还记得我们之前的双11之连连看吗?双11抢红包连连看源码分析-【201511期】我们就可以使用这个方法,不断的返回两个坐标并点击就能够实现,并且速度更加快速哦!

想知道更多内容吧!那么请关注院刊系列!

微信关注引导.jpg(29.91 K)

2015/12/23 17:27:56

android上实时多点找色,多点找色进阶 - 【201512期】相关推荐

  1. 511遇见易语言乐玩插件FindMultiColor找色多点及找色块

    本节视频封装了乐玩的多点找色FindMultiColor及找色块FindMultiColor,并通过<剑侠情缘>这款游戏调用示范. 乐玩插件模块源码: .版本 2.子程序 FindMult ...

  2. 让Android自带的Gallery实现多点缩放,拖动和边界回弹效果,效果流畅

    http://www.havenliu.com/android/668.html 公司项目要开发一个Android看漫画的软件.看了效果,需要滑动翻页,多点缩放,拖动等.但看每个效果在android上 ...

  3. android实现按键找图功能,按键精灵安卓版找图教程 找图功能使用技巧介绍

    按键精灵安卓版找图脚本使用技巧: --提高找图速度的3种方式 1.善于利用按键移动版新增的KeepCapture和ReleaseCapture函数 KeepCapture:截取当前图片并保存在缓存中, ...

  4. python找色_python 找图色

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! ifa.get(result):print(a.get(result))执行输出 ...

  5. android 多点下载地址,多点app下载安装多点

    多点dmall下载,这是一款生活服务类的软件.在这款软件中用户可以购买到非常新鲜的水果和蔬菜,海量商品任你选择,多种进口商品应有尽有.感兴趣的用户赶紧来下载吧. 软件介绍 成为多点会员,享受会员独家折 ...

  6. 平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小。

    题目:平面上给定n条线段,找出一个点,使这个点到这n条线段的距离和最小. 源码如下: 1 #include <iostream> 2 #include <string.h> 3 ...

  7. 使用git在本地电脑与远程GitHub/gitlub库中clone别人的github上的远程仓库代码,找资源

    使用git在本地电脑与远程GitHub/gitlub库中clone别人的github上的远程仓库代码,找资源 1.在自己电脑创建本地仓库 先下载个Git 打开git bash,找一个存放所有git项目 ...

  8. C语言 输入一个5行5列的数组。1.求数组主对角线上元素的和。2.求出辅对角线上元素的积。3.找出主对角线上最大的值及其位置

    C语言 输入一个5行5列的数组.1.求数组主对角线上元素的和.2.求出辅对角线上元素的积.3.找出主对角线上最大的值及其位置 主对角线是什么: 在一个n阶方阵(或是n阶行列式)中,从左上角到右下角这一 ...

  9. 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高效的算法,找出数组中未出现的最小正整数。

    笔者初涉<算法设计与分析>这门专业课,在做一些算法设计题的过程中遇到一些小感悟,特此记录和大家分享. 下面直接给出算法题目: 给定一个含n(n≥1)个整数的数组,请设计一个在时间上尽可能高 ...

最新文章

  1. 神经网络入门——12梯度下降代码
  2. Python学习笔记:Day15 部署Web App
  3. 使用mvc模式读取服务器上的文件,关于C#:如何使用asp.net MVC应用程序从服务器上的网络路径读取...
  4. Error opening/initializing the selected video_out (-vo) device.
  5. javafx弹出式窗口_JavaFX 8的弹出式编辑器
  6. java中的关键字有哪些_Java关键字有哪些?
  7. 把UltraEdit改造成VC
  8. Android音视频从入门到提高---任务列表
  9. 游戏中常见英语词汇,做游戏的,玩游戏总是要碰到的
  10. 少儿编程 电子学会图形化编程等级考试Scratch三级真题解析(判断题)2022年6月
  11. ArcGIS学习笔记-1.功能-1.1裁剪
  12. MyBatis - 官方网址
  13. C++Primer 第15章 OOP
  14. python 矩阵拼接_Numpy基础4 矩阵取整 拉平 拼接 切分 复制等函数操作
  15. HTML——3D旋转+动画 旋转木马案例
  16. 车载网络测试 - 车载以太网 - 传统配置方法(Channel Base)
  17. 手撕自动驾驶算法——多目标追踪:imm交互式多模型
  18. python是否高送转预测股票_炒股票的四个阶段
  19. java ltp4j_博客 | 收藏 | 100多个DL框架、AI库、ML库、NLP库、CV库汇总,建议收藏!...
  20. 基于QT简易智能家居系统界面设计

热门文章

  1. 吾生也有涯,吾知也无涯_乌拉(11)
  2. 【转】欧姆龙OMRON PLC之 CP1H 以太网FINS/TCP通讯实例
  3. 2022A特种设备相关管理(电梯)考试题模拟考试题库模拟考试平台操作
  4. 社区团购小程序源码+界面diy+附近团长+供应商+拼团+菜谱+秒杀+预售+配送+直播
  5. 显控触摸屏android,关于显控触摸屏的应用
  6. 鼠标连点器-全能鼠标连点器软件-游戏生活小帮手
  7. IPHONE 设置 铃声 方法
  8. Scrum指南精要总结(基于2020年版)
  9. 【路径规划】基于遗传算法求解多车多类型车辆的车辆路径优化问题附matlab代码
  10. python有哪几种文件类型_以下哪种文件类型不是用户可以创建的文件类型(      )...