Function 等待找图消失(找图数组,等待时间) //间隔默认设置为100毫秒把 For cint(等待时间*10) If 找图(找图数组) = -1 Then Exit For End If Delay 100 Next End Function Function 等待找图出现(找图数组,等待时间) //间隔默认设置为100毫秒把 For cint(等待时间*10) If 找图(找图数组) > -1 Then Exit For End If Delay 100 Next End Function Function 等待多点找色消失(多点找色数组,等待时间) //间隔默认设置为100毫秒把 For cint(等待时间*10) If 多点找色(多点找色数组) = -1 Then Exit For End If Delay 100 Next End Function Function 等待多点找色出现(多点找色数组,等待时间) //间隔默认设置为100毫秒把 For cint(等待时间*10) If 多点找色(多点找色数组) > -1 Then Exit For End If Delay 100 Next End Function Function 等待多点bi色消失(多点bi色数组,等待时间) //间隔默认设置为100毫秒把 For cint(等待时间*10) If 多点bi色(多点bi色数组) = -1 Then Exit For End If Delay 100 Next End Function Function 等待多点bi色出现(多点bi色数组,等待时间) //间隔默认设置为100毫秒把 For cint(等待时间*10) If 多点bi色(多点bi色数组) > -1 Then Exit For End If Delay 100 Next End Function
231
这些函数只是为了解决几个问题
问题1:打个比方 我们平时的结构基本都是循环结构 循环套循环 打个比方如下面
do
if 找图(找图_游戏主界面)>-1 then
tap 400,1040//点击主界面右上关闭按钮
end if
delay 50
loop
我们循环跑起来 遇到了游戏主界面 脚本发现了这个界面自然会点击游戏主界面右上的关闭按钮 但是app本身关闭某个界面 有一个反应时间 我们点击了右上的关闭按钮 后并不是马上该界面就消失了 需要一点点的反应时间 如果我们的脚本循环间隔太小 那么我们第一次发现游戏主界面点击右上关闭按钮 50毫秒后脚本再次查看手机界面 可能游戏主界面没有反应完 还存在 脚本认为当前还是游戏主界面 又多点击了一下右上的关闭按钮坐标 实际上我们是点击了游戏主界面2次 而第二次点击的时候 游戏主界面可能已经消失了导致我们点击到了其他界面上 产生了误操作和误点击 出现一些意料之外的界面 为了防止这个情况 我们可以这样
do
if 找图(找图_游戏主界面)>-1 then
tap 400,1040//点击主界面右上关闭按钮
call 等待找图消失(找图_游戏主界面,5) //这个函数的意思是 在这里等待 等待找不到游戏主界面 或者 最多等5秒 这样就避免了一个界面产生多个重复操作
end if
delay 50
loop
问题2:有的时候 我们点击游戏主界面的按钮 比如副本按钮把 系统有一个反应时间 点击了副本按钮后 会短暂的进入了另外1个界面 然后系统才反应了过来帮我们导入到副本界面,这个短暂进入的界面 如果是完全不相关的界面倒也没什么 但是一旦是在我们流程内也频繁出现的界面 那么就很有可能导致一个误判和误操作 因为点击副本后出现的那个临时界面只是一闪而过的马上消失了 一旦我们流程中有这个界面的正常应对 比如点击该界面的某个坐标 那么因为她一闪而过的特殊情况 结果是我们脚本判断出的这个一闪而过的界面的对应点击很可能点击到了随后痴线的副本界面的对应位置 ,所以我们要这么写 能保证过滤掉这个一闪而过的额外情况
do
if 找图(找图_游戏主界面)>-1 then
tap 400,600//点击副本按钮
call 等待找图出现(找图_副本界面,10) //这个函数的意思是 在这里等待 等待找到副本界面 或者 最多等10秒 这样就避免了临时出现的这种一闪而过的额外界面的干扰
end if
delay 50
loop
原文:https://www.cnblogs.com/zjl8455482/p/10878794.html