• 新浪微博:
  • 微信 :
按键精灵电脑版
立即下载

软件版本:2014.05
软件大小:21.6M
更新时间:07-04

按键精灵安卓版
立即下载

软件版本:3.3.0
软件大小:62.5M
更新时间:5-24

按键精灵iOS版
立即下载

软件版本:1.3.3
软件大小:29.2M
更新时间:06-14

按键精灵Mac版
立即下载

软件版本:1.1.0
软件大小:12.3M
更新时间:12-29

快捷导航

登录 后使用快捷导航
没有帐号? 注册

登录 注册
返回列表 12345678» / 29
发新话题 回复该主题

[教程心得] 【山海教程】【零基础学按键】找色命令--让脚本开眼观世界 [复制链接]

1#


零基础,轻松学习安卓按键,大家好,我是山海师~~~

今天这篇教程给大家介绍下几个常用的找色命令,学会了找色的命令那其实基本上安卓按键也基本上会了一大半了,加上之前学习的内容就已经可以写出游戏的脚本了.

>>>>总目录贴入口<<<<

GetPixelColor



命令名称GetPixelColor
命令功能获取指定点颜色
命令参数x:整数型,屏幕x坐标
y:整数型,屏幕y坐标
type:浮点型,返回类型,可省略,默认为0
注意:返回类型为0时:颜色值是16进制,格式为"BBGGRR",不为0时:颜色值是10进制数值
返回值此点的颜色值


这个命令比较简单粗暴, 就是用来获取一个固定坐标点的颜色值

注意一点: 在按键精灵上使用的颜色格式都是为BGR格式, 如果是从其他的软件上获取到颜色信息的话一定要记得转换下, 否则颜色值会不正确. 比如按键精灵上获取到的颜色信息是 D97700 那就要转换成 0077D9 这样的RGB格式才行.

范例:
  1. Dim rColor
  2. rColor = GetPixelColor(300, 300,0)
  3. TracePrint "300, 300这个点的颜色为:"&rColor
复制代码
我们可以利用这个命令来模仿一个简单的多点比色功能:
  1. Dim rColor
  2. rColor = GetPixelColor(365,301,0)
  3. If rColor = "397202" Then
  4. rColor = GetPixelColor(254,279, 0)
  5. If rColor = "D97700" Then
  6. rColor = GetPixelColor(218,299, 0)
  7. If rColor = "CFBD25" Then
  8. TracePrint "三个点颜色都正确"
  9. End if
  10. End if
  11. 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

区域找色的命令是用来在指定的范围内找某一个颜色, 并且返回找到的这个颜色的坐标
  1. Dim IntX,IntY,返回值
  2. //范围找单色
  3. FindColor 265,238,384,324,"123456-000000",0,0.9,intX,intY
  4. If intX >-1 then
  5. Traceprint "找到"
  6. Else
  7. Traceprint "没有找到"
  8. End If
  9. //范围找多色
  10. 返回值=FindColor(0, 0, 0, 0, "0000FF-101010|FFFFFF-000000|FF00FF",0, 0.9, intX, intY)
  11. '当需要函数返回值时需要加括号
  12. If 返回值 > -1 Then
  13. TracePrint "找到的颜色序号为"&返回值&",坐标在"&intX&","&intY
  14. Else
  15. TracePrint "全部没找到"
  16. 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代表找到

多点比色和多点找色都是在安卓按键里非常常用的找色命令.
因为多点比色命令是通过对比多个固定坐标上的颜色是否一致来判断特征的, 多点找色命令适合用来找一些位置固定的特征

范例:
  1. If CmpColorEx("177|276|FDD01E,199|249|FFFFFF,205|280|0202C9", 0.9) = 1 Then
  2. TracePrint "特征找到"
  3. Else
  4. TracePrint "特征没找到"
  5. 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"
返回值

多点找色和多点比色用途正好相反. 多点比色是根据固定坐标找色, 而多点找色则是根据相对坐标来找色
因为使用相对的偏移坐标来找色, 所以多点找色命令适合找位置会改变的特征

范例:
  1. Dim intX,intY
  2. FindMultiColor 145,237,229,319, "FCCF1D","18|-28|FFFFFF,24|3|0202C9", 0, 0.9, intX, intY
  3. If intX > -1 And intY > -1 Then
  4. TracePrint intX
  5. TracePrint intY
  6. 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







赠人玫瑰手有余香~~~你的一个顺手回复也许就可以让这个帖子给更多的人看到,就能帮助更多的人~~~

本主题由 管理员 青黛 于 2018/3/1 17:26:27 执行 审核帖子 操作
2#

友情顶帖,山老湿辛苦了

3#

趁热帖,前排支持

4#

谢谢楼主分享

5#

前排支持

6#

123123

7#

山海山海山海 牛逼山海山海山海 牛逼

8#

找色命令

9#

再看看里面还有什么好东西

新人,望点拨.,,...一下拨不动,请多拨两下....
10#

学习了,谢谢

11#

学习学习,谢谢了

12#

感謝山海大大的教學

13#

1111111111111111111

14#

谢谢楼主分享

15#


16#

........................

17#

能知道一个位置的颜色发生变化了么
还有就是监视某个位置是否出现某个特征,是用多线程循环的方式么

18#

6666666666666

19#

ffhlgdfhhf

20#

欧佩克看破

发新话题 回复该主题