[按键精灵] 纯文本查看 复制代码
Import "zm.luae" //导入插件,只需执行一次
zm.Init //初始化插件,只需执行一次
//================例子1================//
'查找两张图片, 分别是图片1.png和图片2.png
'查找范围默认全屏
'相似度默认0.8
'方向默认从左到右,从上到下
'图片所在路径默认为附件
Dim ret '定义找图返回值
ret = zm.FindPic("图片1.png|图片2.png")
'找到图片返回table, 没有找到返回null, 所以直接判断变量名
If ret Then
TracePrint "找到图片了, 返回值有以下3种使用方法, 任选一种使用"
TracePrint "数组方式: 序号=" & ret(0), ", 坐标x=" & ret(1), ", 坐标y=" & ret(2), ", 图片名=" & ret(3)
TracePrint "表下标方式: 序号=" & ret[1], ", 坐标x=" & ret[2], ", 坐标y=" & ret[3], ", 图片名=" & ret[4]
TracePrint "表键名方式: 序号=" & ret["id"], ", 坐标x=" & ret["x"], ", 坐标y=" & ret["y"], ", 图片名=" & ret["name"]
Else
TracePrint "没有找到图片"
End If
//================例子2================//
'把返回值保存在数组参数中, 称为返回参数
'这种写法可以少写一行赋值代码, 美化脚本结构
'与例子1相似, 区别在于返回结果保存在了数组t中
'可以直接判断命令返回值, 也可以单独调用后判断返回数组t
Dim t() '定义返回参数数组, 必须是数组
If zm.FindPic("图片1.png|图片2.png", t) Then
TracePrint "找到图片了, 同样有以下3种使用方法, 任选一种使用"
TracePrint "数组方式: 序号=" & t(0), ", 坐标x=" & t(1), ", 坐标y=" & t(2), ", 图片名=" & t(3)
TracePrint "表下标方式: 序号=" & t[1], ", 坐标x=" & t[2], ", 坐标y=" & t[3], ", 图片名=" & t[4]
TracePrint "表键名方式: 序号=" & t["id"], ", 坐标x=" & t["x"], ", 坐标y=" & t["y"], ", 图片名=" & t["name"]
Else
TracePrint "没有找到图片"
End If
//================例子3================//
'由于大部分找图返回结果只使用一次后, 就不会再使用了
'所以我们可以设置统一默认返回值, 让它保存最近一次找图结果
'通过使用zm.SetFindPic()设置默认返回参数数组tPic
'如果zm.FindPic()命令没有指定返回参数数组, 则默认保存在tPic中
'与例子2相似, 由于没有指定返回参数数组, 所以默认保存在tPic中
Dim tPic() '定义默认返回数组
zm.SetFindPic {"ret":tPic}
If zm.FindPic("图片1.png|图片2.png") Then
TracePrint "找到图片了, 同样有以下3种使用方法, 任选一种使用"
TracePrint "数组方式: 序号=" & tPic(0), ", 坐标x=" & tPic(1), ", 坐标y=" & tPic(2), ", 图片名=" & tPic(3)
TracePrint "表下标方式: 序号=" & tPic[1], ", 坐标x=" & tPic[2], ", 坐标y=" & tPic[3], ", 图片名=" & tPic[4]
TracePrint "表键名方式: 序号=" & tPic["id"], ", 坐标x=" & tPic["x"], ", 坐标y=" & tPic["y"], ", 图片名=" & tPic["name"]
Else
TracePrint "没有找到图片"
End If
'由于前面设置过默认返回值, 所以后面所有zm.FindPic()命令在不写返回参数数组的情况下, 都会保存结果到tPic数组中
If zm.FindPic("图片3.png") Then
TracePrint "图片结果保存在tPic中", tPic(0), tPic(1), tPic(2), tPic(3)
End If
'指定返回参数数组tt后, 本次查找结果保存在数组tt中, 对默认返回数组tPic没有影响
Dim tt()
If zm.FindPic("图片4.png", tt) Then
TracePrint "本次结果tt:", tt[1], tt[2], tt[3], tt[4]
TracePrint "默认数组tPic:", tPic[1], tPic[2], tPic[3], tPic[4]
End If