TC官方合作论坛

标题: 哪位大神告知下,此功能为什么运行了10多次之后脚本就会死! [打印本页]

作者: zili5209    时间: 2015-6-28 12:15
标题: 哪位大神告知下,此功能为什么运行了10多次之后脚本就会死!
功能 循环找图点击(x1,y1,x2,y2,a,b,c,d,图片,图片1,偏色,偏色1,相似度,相似度1,找图方向,大漠)
    变量 找图开关=真
    循环(找图开关)
        变量 x,y
        变量 返回值=大漠.FindPic(x1,y1,x2,y2,图片,偏色,相似度,找图方向,x,y)
        调试输出("正在找"&图片)
        如果(返回值==0)
            等待(1000)
            调试输出("已找到")
            大漠数组左键点击(大漠,x,y)
            等待(1000)
            //            大漠数组回桌面(下标)
            找图开关=假
            跳出
        否则
            变量 e,f
            变量 返回值1=大漠.FindPic(a,b,c,d,图片1,偏色1,相似度1,找图方向,e,f)
            调试输出("正在找"&图片1)
            如果(返回值1==0)
                等待(1000)
                调试输出("已找到")
                大漠数组左键点击(大漠,e,f)
                等待(1000)
            否则
                等待(1000)
            结束
        结束
        等待(2000)
        调试输出("没找到")
    结束
结束

作者: 这论坛不错    时间: 2015-6-28 13:17
看你的功能是怎么封装的,这么看是看不出原因的,另外传了16个参数?别搞得这么复杂,传得都头晕,参数尽量控制在10个以内吧
作者: zili5209    时间: 2015-6-28 14:09
这是需要16个参数的,主要是防止有些找图单击的时候,脚本是单击了,实际上因为卡住了,没有单击到,复位找图的!打个比方,我要找到C盘,先要找我要的电脑图标,然后双击,但电脑太卡了或别的原因,没有双击到,这种情况脚本中应该经常出现的,所以,这个功能就是防止此BUG出现而封装的.
作者: tan0360    时间: 2015-6-28 14:59
否则里也是死循环。。搞个延时循环当时间了直接跳出。看你的代码风格应该是参考蓝丝羽的。别搞那么复杂多做函数。。减少函数复杂程度。
作者: zili5209    时间: 2015-6-28 15:35
5.2版本的问题,4.4就没有
作者: 闲庭信步    时间: 2015-6-29 00:32
本帖最后由 闲庭信步 于 2015-6-29 00:34 编辑

findpic()返回值:
返回找到的图片的序号,从0开始索引.如果没找到返回-1

" 变量 返回值=大漠.FindPic(x1,y1,x2,y2,图片,偏色,相似度,找图方向,x,y)
         调试输出("正在找"&图片)
         如果(返回值==0)"

多张图片查找的时候找到了不一定是返回0 ,这样写会出错.
正确的要写成 “如果(返回值>=0)”  
或者写  “如果(返回值 > -1)”  表示找到







欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1