按键精灵自定义函数全屏检测自定义区域颜色变化

IsDisplayChange 判断区域颜色一定时间是否变化
这个怎么用 _ 按键精灵手机版 - 按键精灵论坛
腾讯微博:
软件版本:2014.05软件大小:21.6M更新时间:07-04
软件版本:3.2.6软件大小:62.5M更新时间:09-27
软件版本:1.3.1软件大小:29.2M更新时间:09-29
软件版本:1.1.0软件大小:12.3M更新时间:12-29
查看: 745|回复: 3
IsDisplayChange 判断区域颜色一定时间是否变化
这个怎么用帮助
脚本例子:
//在5秒内判断范围内屏幕是否有发生变化Dim r= shanhai.IsDisplayChange(30,40,200,600,5,1)If r Then &&&&TracePrint &屏幕有发生变化&Else &&&&TracePrint &5秒内屏幕都没有发生变化&End If调试 出现
错误:第7行:名称shanhai没有定义。错误码=1869
过大年勋章俩小福娃给大家拜年啦!双十一绝版纪念勋章双十一绝版纪念勋章单身汪勋章单身贵族的专属勋章按键精灵开发者6级(新浪V认证)通过新浪微博加V后自动发放,并替换普通的认证6级勋章。 微博达人(90天)完成新浪微博加V的奖励,结合活动不定期开放申请。幸运草勋章(永久)商业小精灵限时活动勋章。官方脚本作者工会官方脚本作者工会专属勋章 鹰眼勋章鹰眼注册用户专属勋章黄瓜勋章(永久)体验商业小精灵活动的奖励按键卫士(90天)参与“打击山寨,维护按键”活动图灵勋章参与按键精灵验证码识别大赛奖励按键图书勋章尊贵的按键图书用户小红帽对论坛提出良好建议(可向管理员申请)学有所成学有所成勋章,新手步入按键学堂的第一枚勋章脚本作者商业小精灵作者绑定账号后自动赠送
您好 , 插件
必须 先 使用 Import
命令 导入 插件
Import “shanhai.lua&你的位置:
自定义区域范围找色的一些问题
19:30:08 |
来源: 按键精灵资源站
UserVar Var1=0 &设置内容1&
UserVar Var2=0 &设置内容2&
UserVar Var3=0 &设置内容3&
UserVar Var4=0 &设置内容4&
UserVar Var5=0 &设置内容5&
UserVar Var6=0 &设置内容6&
Var7 = split(Var1, &,&)
Var8 = split(Var2, &,&)
Var9 = split(Var3, &,&)
Var10 = split(Var4, &,&)
Var11 = split(Var5, &,&)
Var12 = split(Var6, &,&)
找色1 Var7(0), Var7(1), Var7(2), Var7(3), CStr(Var7(4))'调用找色1
找色2 Var8(0), Var8(1), Var8(2), Var8(3), CStr(Var8(4))'调用找色2
找色3 Var9(0), Var9(1), Var9(2), Var9(3), CStr(Var9(4))'调用找色3
找色4 Var10(0), Var10(1), Var10(2), Var10(3), CStr(Var10(4))'调用找色4
找色5 Var11(0), Var11(1), Var11(2), Var11(3), CStr(Var11(4))'调用找色5
找色6 Var12(0), Var12(1), Var12(2), Var12(3), CStr(Var12(4))'调用找色6
Sub 找色1(x1, y1, x2, y2, 颜色1)'无需循环,找到找不到都进入找色2
FindColor x1,y1,x2,y2,颜色1,intX,intY
If intX& 0 And intY& 0 Then
MoveTo intX, intY
LeftClick 1
Delay 10000
Sub 找色2(x3, y3, x4, y4, 颜色2)
FindColor x3,y3,x4,y4,颜色2,intX,intY
If intX & 0 And intY & 0 Then
'找到什么都不做
Exit Do'找不到结束循环,进入找色3
Sub 找色3(x3, y3, x4, y4, 颜色3)
FindColor x3,y3,x4,y4,颜色3,intX,intY
If intX & 0 And intY & 0 Then
'找到什么都不做
Exit Do'找不到结束循环,进入找色4
Sub 找色4(x3, y3, x4, y4, 颜色4)
FindColor x3,y3,x4,y4,颜色4,intX,intY
If intX & 0 And intY & 0 Then
MoveTo 601,391
LeftDoubleClick 1
RightClick 1
Exit Do'找不到结束循环,进入找色5
Sub 找色5(x3, y3, x4, y4, 颜色5)
FindColor x3,y3,x4,y4,颜色5,intX,intY
If intX & 0 And intY & 0 Then
KeyDown &Right&, 1
Delay 1000
KeyDown &Alt&, 1
KeyPress &Tab&, 1
KeyUp &Alt&, 1
Exit Do'找不到结束循环,进入找色6
Sub 找色6(x3, y3, x4, y4, 颜色6)
FindColor x3,y3,x4,y4,颜色6,intX,intY
If intX & 0 And intY & 0 Then
KeyDown &Alt&, 1
KeyPress &Tab&, 1
KeyUp &Alt&, 1
KeyDown 17, 1
KeyPress 83, 1
KeyUp 17, 1
MsgBox &完。&
ExitScript
Exit Do'找不到结束循环,进入找色1
//下面是问题
Sub 找色1 有效但不循环【开始运行时有效,后来掉线却忽略了】
//这样修改是否可行
FindColor x1,y1,x2,y2,颜色1,intX,intY
If intX& 0 And intY& 0 Then
MoveTo intX, intY
LeftClick 1
Delay 10000
Else Exit Do'找不到结束循环,进入找色2End IfDelay 200LoopEnd Sub
Sub 找色2 有效
Sub 找色3 有效
Sub 找色4 有效
//想在Sub找色5 前面插入Sub找色1再次判定 因为经常掉线&&是不是把sub 找色1 直接复制到这里
Sub 找色5 有效
Sub 找色6 无效【测试网页有这个颜色,却弹出信息框和停止脚本,还有sub 找色6如何循环到sub 找色1】
//设置为按中止键停止情况下&&找色6没有找到颜色 会不会继续循环到找色1
Sub 找色6(x3, y3, x4, y4, 颜色6)
FindColor x3,y3,x4,y4,颜色6,intX,intY
If intX & 0 And intY & 0 Then
KeyDown &Alt&, 1
KeyPress &Tab&, 1
KeyUp &Alt&, 1
KeyDown 17, 1
KeyPress 83, 1
KeyUp 17, 1
MsgBox &完。&
ExitScript按键精灵手机版教程第四课:图色操作
作为按键精灵安卓版最核心的内容,图色操作是必备的,可能有童鞋仅用点击和延时来做脚本也能达到效果,但是这样的脚
&&& 作为按键精灵安卓版最核心的内容,图色操作是必备的,可能有童鞋仅用点击和延时来做脚本也能达到效果,但是这样的脚本不具备良好的抗压能力, 可能手机卡顿一下,可能网络卡顿一下,就全乱套了。而使用图色脚本,可以根据界面的特征来识别出当前游戏或者应用的状态,做出相应操作,稳定性大大增强。 要做出出色的脚本,以下几个图色命令必须掌握:
1. GetPixelColor()
功能为获取屏幕上某个坐标点的颜色,具体用法为:
Dim rColor
rColor = GetPixelColor(300, 300) //获取坐标300,300的点的颜色
TracePrint &这个点的颜色为:&&rColor
通常与判断语句一起使用:
Dim rColor
rColor = GetPixelColor(300, 300)
If rColor = &FFFFFF& Then
TracePrint &坐标(300,300)的像素点颜色是FFFFFF,说明当前处于XX界面下&
TracePrint &坐标(300,300)的像素点颜色不是FFFFFF,说明还没到XX界面&
虽 然很简单,并且我们直接用他的时候也不多,但是下面的几个图色操作都是基于这个命令进行的,因此相当重要,必须理解其意思,返回的值是一个十六进制的 BGR值,我们来了解一下BGR值以方便更好的理解命令的意思,所有的颜色都可以由蓝绿红三个颜色组成,不同的混合比例形成不同的颜色,在计算机中,我们 将这三个颜色分量都分成255个级别,0为颜色最淡,255为颜色最深,一个点(像素)就由三个255级别的分量组成。而0-255用十六进制表示即为 00-FF(有兴趣的同学自己搜索一下十六进制),我们不需要去记颜色,知道意思即可。 给你们个图,自己体会下意思~
2. CmpColorEx(mul_color,sim)
多点比色,具体用法为:
If CmpColorEx(&300|500|030,305|505|FFFFFF&,0.9) = 1 Then
TracePrint &全部点颜色相等&
TracePrint &有一个或多个颜色不符合&
由于单个点坐标的颜色比较来判定图形容易误判,我们来看看下面的两个图,两个图中,如果我们只获取一个点来判定,比如取第二行第二排,也就是(2,2)这 个点来判定,我们会得到一样的结果,没有办法区分两个图,但是如果我们取两个点,分别是(2,2)和(4,3),我们就可以分辨出这两个图。取得点越多, 正确识别率越高,但是相应的耗时也会增加,容易混淆的图建议取多个点比较,反之取3到4个点基本就够用了。
我们试着来写一下以上两个图如何识别:
If CmpColorEx(&2|2|020,4|3|020&, 0.9) = 1 Then
TracePrint &这是第二个图&
TracePrint &这不是第二个图&
<font color="#|2|020分别为取的第一个点的X坐标、Y坐标、颜色、允许的偏色范围,4|3|020分别为取的第二个点 的X坐标、Y坐标、颜色、允许的偏色范围,其中偏色范围的意思是指相应的坐标点的颜色不需要完全相同,允许有偏色,偏色的量由我们自己来定,分别为BGR 三个颜色分量的偏色!00的偏色范围20,即前后各10的偏色范围,如果是30的偏色范围为20的话,就是10-30都可。这里,我推荐偏色都设置成 101010。下图就是020允许的偏色范围:
怎么样,相当好理解吧!就这样吧。。。等等,为什么后面还有个0.9呢,这个值的意思其实是相似度,其实跟偏色有点像,不同的设备显示一样的图或多或少都 有一点点不一样(参考iphone屏幕和山寨机屏幕的颜色你就明白了),那么我们需要一定的容错率,允许颜色偏差在一定范围内可以接受,这个相似度的值在 0-1之间,一般设置为0.9。
虽然都明白了,但是写起来好麻烦啊。。。来来来,用抓抓自动帮你写命令,看图说话!
<font color="#. 找到想取的颜色的点,按Ctrl+数字键选取(数字键1就对应序号的1)。
<font color="#. 自定义偏色范围,在框内写上偏色值。
<font color="#. 将选取的点勾起来
<font color="#. 生成命令选择CmpColorEx
<font color="#. 点击复制完整命令
直接黏贴在脚本编辑区中吧!就这么快!
3. FindMultiColor
多点找色,具体用法是:
Dim IntX,IntY
FindMultiColor 0,0,0,0,&FFFFFF&,&4|1|2F|010,3|7|,0.9,intX,intY
If intX & -1 Then
TracePrint &找到啦,坐标在&&intX&&,&&intY
TracePrint &没找到&
多点找色,也叫做区域多点找色,是用来寻找位置会发生变化,但是特征没变的图形的,一般用来代替区域找图用,效率更高。
多 点找色的原理是利用寻找点的偏移位置的颜色来判定,以达到确定寻找点的位置,我们来看看下图,我们希望寻找到一个黑色的点,如果在整张图中寻找,我们会得 到3个结果,这并不是我们想要的,于是我们需要知道其他的条件,现在,我还知道这个黑色的点的下面也有一个黑色的点,于是我们去将这三个黑点的下面一个点 进行判定,得到了唯一的我们想要的点的坐标,愉快的进行操作吧!
我们继续来将上面的例子写出来:
Dim IntX,IntY
FindMultiColor 0,0,0,0,&000000&,&0|1|020&,0,0.9,intX,intY
If intX & -1 Then
TracePrint &找到啦,坐标在&&intX&&,&&intY
TracePrint &没找到&
一 开始,先定义一个坐标(intX和intY,可以随自己喜好命名),用来存放找到的位置的坐标。0,0,0,0的意思是搜索范围的起始坐标和结束坐标(四 个0默认是全屏),搜索范围是一个正方形,起始坐标在左上角,结束坐标在右下角,比如:10,20,30,40就是坐标(10,20)和坐标 (30,40)组成的矩形范围:
在这个范围外的区域不进行查找,设置区域一方面可以加快查找效率,一方面可以排除部分干扰,比如两个图特征相似,很难分辨,但是他们位置区别很明显,我们 就可以限制查找范围来寻找。后面的&FFFFFF-202020&就是寻找的点的颜色(202020依旧是偏色,解释就在楼上~)。重点在更后面的那一行 &0|1|FFFFFF-202020&中的&0|1&,毫无疑问这是一个坐标,但是他并不是在屏幕中的绝对坐标,而是相对于寻找到的那个点的坐标,也就 是我们把寻找到的点当做坐标(0,0),因此这个(0,1)就是在寻找到的点往右偏移0个位置,往下偏移1个位置的点。至于后面的0和0.9,前者是搜索 模式,就是扫描此区域采用的顺序,0.9为相似度,基本不需要改,采用默认设置即可。
工程量感觉比比色还要巨大啊,偏移位置要算死的节奏啊。。。好吧,还是抓抓工具,帮你几步完成,其他步骤均与CmpColorEx相似,可以自己写上一个寻找范围,并且生成命令选择FindMultiColor即可:
常用的图色操作就是2与3的两个命令(1是他们的基础~),请务必记下来用法与原理,他们貌似挺相似的,那么我们应该怎么选择呢?多点比色取的是固定点的 坐标,也就是绝对值坐标,那么也就是我们寻找的特征不能移动,适合特征在固定位置的情况下,而多点找色使用的是相对比较,可以在一片区域内寻找特征,适合 位置会移动的特征。当然还有其他一些区域找图的命令(命令大全里,下图,用法都类似),个人推荐在十分无奈的情况下才用(屏幕上要寻找的图有许多其他很相 似的图,多点找色难以寻找到)。
(责任编辑:飞鹿优化)
------分隔线----------------------------

我要回帖

更多关于 全屏按键精灵不能用 的文章

 

随机推荐