反思总结 2022-2-9
想法
按键精灵中找色功能都可用字符串操作,所以读取预先写好文本传入到自定义的函数中,可快速创建一个稳定的脚本。
思路
1. 认识CmpColorEx
函数
因为用字符串操作脚本,要知道找色命令需要传入什么字符串。
CmpColorEx
对比多个点的像素颜色,匹配返回1,不匹配返回0
结果 = CmpColorEx(
对比颜色组, "需要对比的点xy坐标和16进制颜色,格式:"x|y|16进制",多颜色"|"隔开,偏色用"-",多信息用","隔开,如"100|200|FFFFFF|123456-000000,300|500|FFFFFF""
相似度 "0~1,数值越大相似度越高"
)
可看出需提取要传入的字符串对比颜色组,相似度我就固定设置为1。可直接用按键精灵手机助手的抓抓工具提取想要的字符串参数
2. 用File
插件处理字符串
想用文本文件对脚本进行操作,需要用Flie
插件对脚本进行输入和输出。
-
输入:
File.WriteLines
输入数组内容到指定文件中File.WriteLines 文件路径, 数组内容
-
输出:
Flie.ReadLines
读取指定的文件保存到数组中结果 = File.ReadLines(文件路径)
3. 设计程序框架
一般操作 Aodriod 时都是出现特定的画面后再去点击屏幕,过程如下
那么通过遍历Flie.ReadLines
返回的数组,将参数传入CmpColorEx
就可以实现上述操作。
拿《碧蓝航线》简单测试一下脚本效果
源码:
Dim color_path, coordinate_path, 颜色数组, 坐标数组, 内容数组, 读取结果1, 读取结果2, color1, coordinate
color_path = "/sdcard/Pictures/ColorTest.txt"
coordinate_path = "/sdcard/Pictures/CoordinateTest.txt"
颜色数组 = Array("626|24|63F3FF,796|23|7349FF,452|24|212421,459|22|3A353A", "432|430|8CFBF7,432|480|8CFFFF,590|430|84FBF7,585|480|63FBF7")
坐标数组 = Array("165,244","620,430")
File.WriteLines color_path, 颜色数组
File.WriteLines coordinate_path, 坐标数组
读取结果1 = File.ReadLines(color_path)
读取结果2 = File.ReadLines(coordinate_path)
For Each i , j in 读取结果1
Do
Delay 500
color1 = CmpColorEx(j, 1)
If color1=1 Then
coordinate = Split(读取结果2[i], ",")
Tap coordinate[1],coordinate[2]
End If
Loop Until color1=1
Next
debug
Split
函数分割的字符串可直接传入Tap
,尚不清楚返回的数字是string
还是number
- 按键精灵中
0
和1
都为True
,-1
才表示False