精品免费教程

第40课 限时循环查找 - 《按键精灵9 · 经典教程》
  • 楼主 紫猫
  • 114102022-4-10 20:43:59

按键电脑版

教程封面: 点击查看
按键版本: 按键精灵9
教程难度: 中级教程
教程专辑: 《按键精灵9 · 经典教程》
教程简介: 这是我们早期按键精灵9的经典教程系列,当时讲完没多久就按键2014出来了,所以一直放在某个角落吃灰。现按键论坛重启,急需一套全面的零基础免费教程,故响应号召,将这部分视频重新整理并加上图文说明后发布。虽然教程年代久远,但按键精灵9的语法与按键精灵2014版完全一样,仅仅只是界面不同而已,所以可以放心学习,而一些改动的地方,我也将会在帖子中以图文形式告知大家。由于这个系列是我刚开始授课时讲解的,有点小紧张,语速比较慢,也有一些重复话语,推荐大家2倍速以上观看,捂脸,逃。。。
教程下载: --
网盘密码: 无
备注说明: --
[media]https://www.bilibili.com/video/BV18q4y1z79A[/media]
教程内容介绍

有时候我们不确定屏幕画面出现时间,延时太久影响效率,延时太短容易查找失败,所以需要万能的限时循环查找来解决这一难题。
在学本节课之前,你可能使用Delay 5000之类的代码来解决等待图片出现的问题,但是这个方法很蠢,如果图片有时候1秒钟出现,有时候3秒出现,怎么办?干等岂不是浪费时间了。
所以本节课利用限时循环解决这个问题,而且这个限时循环的思路还可以用在其他任何需要等待的地方。
[mw_shl_code=qscript,true]//高级例子
//介绍: 支持多个颜色的限时找色命令
//图片: 多张图片以|隔开, 直接写图片名时表示附件图片, 任何一张图片找到立即返回结果
//时长: 单位毫秒, 指定时间内循环查找, 找到立即返回
//返回: 返回数组数据, 格式为[x, y, 序号], 未找到返回[-1, -1, -1]
Function zmFindPic(x1, y1, x2, y2, 图片, 相似度, 时长)
    Dim pics, i, x, y, t
    zmFindPic = Array(-1, -1, -1)
    pics = Split(图片, "|")
    t = Plugin.Sys.GetTime()
    Do
        For i = 0 To UBound(pics)
            If InStr(pics(i), "\") = 0 Then pics(i) = "Attachment:\" & pics(i)
            FindPic x1, y1, x2, y2, pics(i), 相似度, x, y
            If x > - 1  Then
                zmFindPic = Array(x, y, i)
                Exit Function
            End If
        Next
        Delay 10
    Loop While 时长 > Plugin.Sys.GetTime() - t
End Function

//调用例子1: 3秒内在指定范围内查找附件里1.bmp或2.bmp图片, 任何一个找到都返回结果
Dim ret
ret = zmFindPic(0, 0, 400, 500, "1.bmp|2.bmp", 0.9, 3000)
If ret(0) > - 1  Then
    TracePrint "找到坐标x=" & ret(0) & ", 坐标y=" & ret(1) & ", 序号=" & ret(2)
Else
    TracePrint "没有找到"
End If

//调用例子2: 3秒内在指定范围内查找附件里1.bmp或C盘里的2.bmp图片, 任何一个找到都返回结果
ret = zmFindPic(0, 0, 400, 500, "1.bmp|C:\2.bmp", 0.9, 3000)
If ret(0) > - 1  Then
    TracePrint "找到坐标x=" & ret(0) & ", 坐标y=" & ret(1) & ", 序号=" & ret(2)
Else
    TracePrint "没有找到"
End If[/mw_shl_code]
倒序浏览 看全部 全部回复
暂无回复,快来抢沙发
回复 收藏
天天打卡