- 按键工程师
- 742060
- 2281
- 5
- 881 朵
- 10799 个
- 580 个
- 48300
- 2011-08-18
|
1#
t
T
发表于 2016-04-12 17:13
|
|只看楼主
零基础,轻松学习安卓按键,大家好,我是山海师~~~ 今天这篇教程给大家介绍下几个常用的找色命令,学会了找色的命令那其实基本上安卓按键也基本上会了一大半了,加上之前学习的内容就已经可以写出游戏的脚本了. | >>>>总目录贴入口<<<<
GetPixelColor
命令名称 | GetPixelColor | 命令功能 | 获取指定点颜色 | 命令参数 | x:整数型,屏幕x坐标 y:整数型,屏幕y坐标 type:浮点型,返回类型,可省略,默认为0 注意:返回类型为0时:颜色值是16进制,格式为"BBGGRR",不为0时:颜色值是10进制数值
| 返回值 | 此点的颜色值
|
这个命令比较简单粗暴, 就是用来获取一个固定坐标点的颜色值 注意一点: 在按键精灵上使用的颜色格式都是为BGR格式, 如果是从其他的软件上获取到颜色信息的话一定要记得转换下, 否则颜色值会不正确. 比如按键精灵上获取到的颜色信息是 D97700 那就要转换成 0077D9 这样的RGB格式才行.
范例:
- Dim rColor
- rColor = GetPixelColor(300, 300,0)
- TracePrint "300, 300这个点的颜色为:"&rColor
复制代码 我们可以利用这个命令来模仿一个简单的多点比色功能: - Dim rColor
- rColor = GetPixelColor(365,301,0)
- If rColor = "397202" Then
- rColor = GetPixelColor(254,279, 0)
- If rColor = "D97700" Then
- rColor = GetPixelColor(218,299, 0)
- If rColor = "CFBD25" Then
- TracePrint "三个点颜色都正确"
- End if
- End if
- End If
复制代码 FindColor
命令名称 | FindColor | 命令功能 | 在指定区域内查找指定的颜色 | 命令参数 | x1:整数型,区域左上角x坐标 y1:整数型,区域左上角y坐标 x2:整数型,区域右下角x坐标 y2:整数型,区域右下角y坐标 color 字符串:要对比的16进制颜色,格式为"BBGGRR"多个颜色用“|”号分隔, 如果需要对比偏色则中间用“-”号分隔,比如"FFFFFF|123456-000000|00FF00-101010" sim 双精度浮点数:相似度,取值范围0-1 dir:整数型,查找方向 0: 表示从左上向右下; 1: 表示从中心往四周查找; 2: 表示从右下向左上查找; 3: 表示从左下向右上查找; 4:表示从右上向左下查找 intX:变参指针,返回X坐标 intY:变参指针,返回Y坐标
| 返回值 | 整数型:返回找到的颜色的序号,从0开始索引.没找到返回-1
| 区域找色的命令是用来在指定的范围内找某一个颜色, 并且返回找到的这个颜色的坐标
- Dim IntX,IntY,返回值
- //范围找单色
- FindColor 265,238,384,324,"123456-000000",0,0.9,intX,intY
- If intX >-1 then
- Traceprint "找到"
- Else
- Traceprint "没有找到"
- End If
- //范围找多色
- 返回值=FindColor(0, 0, 0, 0, "0000FF-101010|FFFFFF-000000|FF00FF",0, 0.9, intX, intY)
- '当需要函数返回值时需要加括号
- If 返回值 > -1 Then
- TracePrint "找到的颜色序号为"&返回值&",坐标在"&intX&","&intY
- Else
- TracePrint "全部没找到"
- End If
复制代码 如果传入多个颜色值的话, 会直接会返回第一个找到的颜色的坐标.并且会返回一个找到的颜色的序号(从0 开始) 其中查找方向参数代表这让按键从什么方向开始查找这个屏幕 0 代表从左上到右下查找 就表示先从左到右, 然后从上到下的方向 ( 如图 )- 您所在的用户组无法下载或查看附件
CmpColorEx
命令名称 | CmpColorEx | 命令功能 | 同时比较指定的多个坐标点的颜色,支持多色、偏色、相似度比较 | 命令参数 | mul_color:字符串,需要对比的点xy坐标和16进制颜色,格式为(X坐标|Y坐标|16进制颜色), 多个颜色用“|”号分隔,需要偏色用“-”号分隔,多个点信息用“,”号分隔, 比如"100|200|FFFFFF|123456-000000,300|500|FFFFFF" sim:双精度浮点数,相似度,取值范围0-1
| 返回值 | 整数型:返回0代表没找到,返回1代表找到
| 多点比色和多点找色都是在安卓按键里非常常用的找色命令.
因为多点比色命令是通过对比多个固定坐标上的颜色是否一致来判断特征的, 多点比色命令适合用来找一些位置固定的特征 |
范例: - If CmpColorEx("177|276|FDD01E,199|249|FFFFFF,205|280|0202C9", 0.9) = 1 Then
- TracePrint "特征找到"
- Else
- TracePrint "特征没找到"
- End If
复制代码 "177|276|FDD01E" 颜色特征字符串里前两个177|276 代表这坐标(177,276) ,"FDD01E" 代表该点的颜色. 这段特征串就是表示每个坐标上对应的颜色是否一致, 一致的话就返回1 否则就返回0 FindMultiColor
命令名称 | FindMultiColor | 命令功能 | 根据指定的多点查找颜色坐标 | 命令参数 | x1:整数型,查找区域左上X坐标 y1:整数型,查找区域左上Y坐标 x2:整数型,查找区域右下X坐标 y2:整数型,查找区域右下Y坐标 first_color:要对比的16进制颜色,多个颜色用"|"号分隔, 如果需要对比偏色则中间用“-”号分隔,比如"FFFFFF|123456-000000|00FF00-101010" sim:双精度浮点数,相似度,取值范围0-1 offset_color:字符串,偏移颜色 dir:整数型,查找方向. 0:表示从左上向右下查找; 1:表示从中心往四周查找; 2:表示从右下向左上查找; 3:表示从左下向右上查找; 4:表示从右上向左下查找; intX:变参指针,返回找到的X坐标 intY:变参指针,返回找到的Y坐标 color:字符串,16进制颜色值,格式为"BBGGRR"
| 返回值 | 无
|
多点找色和多点比色用途正好相反. 多点比色是根据固定坐标找色, 而多点找色则是根据相对坐标来找色
因为使用相对的偏移坐标来找色, 所以多点找色命令适合找位置会改变的特征 |
范例: - Dim intX,intY
- FindMultiColor 145,237,229,319, "FCCF1D","18|-28|FFFFFF,24|3|0202C9", 0, 0.9, intX, intY
- If intX > -1 And intY > -1 Then
- TracePrint intX
- TracePrint intY
- End If
复制代码 "FCCF1D","18|-28|FFFFFF,24|3|0202C9" 颜色特征串中 "FCCF1D" 这个表示要找的第一个点的颜色. "18|-28|FFFFFF,24|3|0202C9" 后面这表示根据找到的第一个点的坐标进行偏移. 比如找到第一个颜色点为FCCF1D的坐标是100,200 , 那它后面18|-28|FFFFFF 的表示的意思就是 (100+18,200-28) 这个坐标的颜色是否是FFFFFF
赠人玫瑰手有余香~~~你的一个顺手回复也许就可以让这个帖子给更多的人看到,就能帮助更多的人~~~
|