--提高找图速度的3种方式
1、善于利用按键移动版新增的KeepCapture和ReleaseCapture函数
KeepCapture:截取当前图片并保存在缓存中,并让接下来的所有找图、找色都在这张缓存图中查找;ReleaseCapture:清除缓存中图片,之后的所有找图、找色函数都会截取最新游戏画面再查找。
2、尽可能缩小附件中图片的尺寸
附件中的图片尺寸要尽可能的小,图片查找范围也是越小越好,现在手机分辨率都很高,一张看上去很小的图,在电脑上看原始尺寸其实很大了,找那么大的图速度肯定比找小图慢很多。
3、尽可能缩小图片查找的范围
可以事先观察一下图片可能在屏幕出现的范围,只在这个范围内找图,而不是总用全屏查找。
--普通找图写法
Dim rColor,intX,intY
do
FindPic 0,0,1080,1920,"Attachment:怪物.png",0,0.9,intX,intY
If intX > 0 And intY > 0 Then
TracePRint "正在战斗"
End If
FindPic 0,0,1080,1920,"Attachment:战斗结束.png",0,0.9,intX,intY
If intX > 0 And intY > 0 Then
TracePrint "战斗结束了"
Exit do
End If
rColor = GetPixelColor(100, 200)
If ColorDiff(rColor,"FFFFFF")<=80 then
TracePrint "血量低该喝药啦"
End If
loop
说明:
1、普通找图、找色函数直接调用时都会先截取当前手机最新画面,一个循环下来就要截取3次画面;
2、所有找图的范围都是全屏查找,速度较慢。
--高速找图写法
Dim rColor,intX,intY
do
KeepCapture
FindPic 200,600,700,900,"Attachment:怪物.png",0,0.9,intX,intY
If intX > 0 And intY > 0 Then
TracePrint "正在战斗"
End If
FindPic 500,700,900,1200,"Attachment:战斗结束.png",0,0.9,intX,intY
If intX > 0 And intY > 0 Then
TracePrint "战斗结束了"
Exit do
End If
rColor = GetPixelColor(100, 200)
If ColorDiff(rColor,"FFFFFF")<=80 then
TracePrint "血量低该喝药啦"
End If
ReleaseCapture
loop
ReleaseCapture'这里的清除缓存很多人容易忘记
说明:
1、由于在循环里加入了KeepCapture和ReleaseCapture,一个循环仅截取1次画面,速度大大加快;
2、由于根据图片可能出现的位置缩小了查找范围,速度大大加快;
3、特别特别注意Exit do执行时循环中的ReleaseCapture被跳过情况,所以要在最后也加上一句ReleaseCapture,否则之后所有找图找色依然在循环里截取的旧图中查找。
新闻热点
疑难解答
图片精选