本帖最后由 转瞬の流星 于 2014-6-10 16:09 编辑 新接触按键精灵移动版的作者可能会发现找图速度和电脑比起来慢一些,这是由于手机机制和电脑有区别,截图不可避免会存在短暂的延时每次截图大约会消耗100毫秒的时间。
提高找图速度的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,否则之后所有找图找色依然在循环里截取的旧图中查找