TC官方合作论坛

标题: 找图 [打印本页]

作者: q111111qq    时间: 2015-1-13 14:11
标题: 找图
找图怎么找,我的意思是  我用大漠找一个图片 比如说我找玉米这个图片,里边有10张同样玉米的图片,我要用那个代码啊

我用的是大漠dm。FindPic(0,0,2000,2000,"1.bmp|2.bmp|3.bmp|4.bmp|5.bmp","000000",0.9,0,x,y)

他老是能找到第一张 和第二张别的就找不到了



我想每个图片都 点一下怎么才能做到 ,

作者: chenxiaoman    时间: 2015-1-13 14:16
dm.FindPicEx
这个函数可以查找多个图片,并且返回所有找到的图像的坐标.
作者: q111111qq    时间: 2015-1-13 15:38
chenxiaoman 发表于 2015-1-13 14:16
dm.FindPicEx
这个函数可以查找多个图片,并且返回所有找到的图像的坐标.

请问 下返回了这么多坐标 但是这个函数 后边没有X,Y啊 那么鼠标怎么移动过去啊
作者: yuduo1983    时间: 2015-1-13 16:37
q111111qq 发表于 2015-1-13 15:38
请问 下返回了这么多坐标 但是这个函数 后边没有X,Y啊 那么鼠标怎么移动过去啊 ...

返回的是所有找到的坐标格式如下:"id,x,y|id,x,y..|id,x,y" (图片左上角的坐标)
比如"0,100,20|2,30,40" 表示找到了两个,第一个,对应的图片是图像序号为0的图片,坐标是(100,20),第二个是序号为2的图片,坐标(30,40)
大漠帮助文档有例子

作者: q111111qq    时间: 2015-1-13 16:57
yuduo1983 发表于 2015-1-13 16:37
返回的是所有找到的坐标格式如下:"id,x,y|id,x,y..|id,x,y" (图片左上角的坐标)
比如"0,100,20|2,30,40"  ...

找到以后 我用什么代码让鼠标每个图片都点一下啊
作者: yuduo1983    时间: 2015-1-13 17:40
q111111qq 发表于 2015-1-13 16:57
找到以后 我用什么代码让鼠标每个图片都点一下啊

分割坐标,然后循环点击
作者: jianxitt    时间: 2015-1-13 17:55
q111111qq 发表于 2015-1-13 16:57
找到以后 我用什么代码让鼠标每个图片都点一下啊

变量 图片数量,返回串,长度
    图片集 = FindPicEx(x1, y1, x2, y2, pic_name, delta_color,sim, dir)

    如果(图片集 != "")
        
        字符串.分割(图片集,"|",图片数量)
        数组空间.大小(图片数量,长度)
        遍历(i=0;i<长度;i++)
            字符串.分割(图片数量,",",返回串)
            图片序号 = 返回串[0]
            x=返回串[1]
            y= 返回串[2]
            dm.MoveTo(x,y)
            辅助.等待(200)
            dm.dm.LeftClick()
        遍历结束
        
    如果结束
作者: q111111qq    时间: 2015-1-13 18:06
jianxitt 发表于 2015-1-13 17:55
变量 图片数量,返回串,长度
    图片集 = FindPicEx(x1, y1, x2, y2, pic_name, delta_color,sim, dir)

谢谢 大神
作者: q111111qq    时间: 2015-1-13 20:47
jianxitt 发表于 2015-1-13 17:55
变量 图片数量,返回串,长度
    图片集 = FindPicEx(x1, y1, x2, y2, pic_name, delta_color,sim, dir)

大哥 怎么他提示我 类型不匹配啊
作者: jianxitt    时间: 2015-1-13 20:53
q111111qq 发表于 2015-1-13 20:47
大哥 怎么他提示我 类型不匹配啊

你代码发上来看看
作者: q111111qq    时间: 2015-1-13 21:06
jianxitt 发表于 2015-1-13 20:53
你代码发上来看看

功能 找怪物()
   
    图片数量,返回串,长度
   
    图片集=dm.FindPicEx(12,60,803,621,"3.bmp|5.bmp|7.bmp|12.bmp|15.bmp|16.bmp|24.bmp|41.bmp","000000",0.8,0)
    调试输出(图片集)
    如果(图片集!="")
        字符串.分割(图片集,"|",图片数量)
        
        boolr=数组空间.大小(图片数量,长度)
        遍历(i=0;i<图片数量;i++)
            
            字符串.分割(图片数量,",",返回串)
            图片序号=返回串[0]
            X=返回串[1]
            Y=返回串[2]
            //dm.MoveTo(X-40,Y-60)
            
            
            
            
        遍历结束
        
        
        
        
    如果结束
作者: q111111qq    时间: 2015-1-13 21:07
q111111qq 发表于 2015-1-13 21:06
功能 找怪物()
   
    图片数量,返回串,长度

功能 找怪物()
   
    图片数量,返回串,长度
   
    图片集=dm.FindPicEx(12,60,803,621,"3.bmp|5.bmp|7.bmp|12.bmp|15.bmp|16.bmp|24.bmp|41.bmp","000000",0.8,0)
    调试输出(图片集)
    如果(图片集!="")
        字符串.分割(图片集,"|",图片数量)
        
        数组空间.大小(图片数量,长度)
        遍历(i=0;i<图片数量;i++)
            
            字符串.分割(图片数量,",",返回串)
            图片序号=返回串[0]
            X=返回串[1]
            Y=返回串[2]
            //dm.MoveTo(X-40,Y-60)
            
            
            
            
        遍历结束
        
        
        
        
    如果结束
作者: jianxitt    时间: 2015-1-13 21:27
q111111qq 发表于 2015-1-13 21:07
功能 找怪物()
   
    图片数量,返回串,长度

我刚才测试了下,是数组忘记带入了.
  1. 功能 找怪物()
  2.     图片数量,返回串,长度
  3.    
  4.     图片集=dm.FindPicEx(0,0,2000,2000,"3.bmp|5.bmp|7.bmp","000000",0.8,0)
  5.     调试输出(图片集)
  6.     如果(图片集 != "")
  7.         字符串.分割(图片集,"|",图片数量)
  8.         
  9.        数组空间.大小(图片数量,长度)
  10.         遍历(i=0;i<长度;i++)
  11.             
  12.             字符串.分割(图片数量[i],",",返回串)
  13.             图片序号=返回串[0]
  14.             X=返回串[1]
  15.             Y=返回串[2]
  16.             //dm.MoveTo(X-40,Y-60)
  17.         遍历结束
  18.     如果结束
  19. 功能结束
复制代码

作者: jianxitt    时间: 2015-1-13 21:30
字符串.分割(图片数量[i],",",返回串)  //----------这里刚才少了一个[i]
            图片序号=返回串[0]
            X=返回串[1]
            Y=返回串[2]

作者: q111111qq    时间: 2015-1-13 21:34
jianxitt 发表于 2015-1-13 21:27
我刚才测试了下,是数组忘记带入了.

谢谢    我调试下
作者: q111111qq    时间: 2015-1-13 21:41
q111111qq 发表于 2015-1-13 21:34
谢谢    我调试下

3.bmp|5.bmp|7.bmp|12.bmp|15.bmp|16.bmp|24.bmp|41.bmp我的这些图片都是一个怪物身上的特征,这个地图上边有3个这样的怪物,但是就返回一个怪物身上,如果我把那个怪物遮挡住再按开始才能找到下一个怪物
作者: q111111qq    时间: 2015-1-13 21:45
jianxitt 发表于 2015-1-13 21:30
字符串.分割(图片数量,",",返回串)  //----------这里刚才少了一个
            图片序号=返回串[0]
       ...

应该是好了吧  我加了个辅助等待
作者: 誰煮肉片    时间: 2015-1-13 21:48
学习围观
作者: jianxitt    时间: 2015-1-13 21:52
q111111qq 发表于 2015-1-13 21:45
应该是好了吧  我加了个辅助等待

那就好,我是用桌面图标代替图片测试的,一下就全部显示出来了
作者: q111111qq    时间: 2015-1-15 14:34
jianxitt 发表于 2015-1-13 21:27
我刚才测试了下,是数组忘记带入了.

大哥,我想问你一下 就说上边这个代码吧  我要他无限循环的找,我用线程开启的  ,怎么让他循环一次释放一次内存啊,因为我看运行的时间长了 ,我的内存就满了
作者: jianxitt    时间: 2015-1-15 17:10
q111111qq 发表于 2015-1-15 14:34
大哥,我想问你一下 就说上边这个代码吧  我要他无限循环的找,我用线程开启的  ,怎么让他循环一次释放 ...

释放内存,我也没试过,不太清楚.
不过,TC里有个
  1. 进程.释放内存(handle)
复制代码


你可以试试看
作者: q111111qq    时间: 2015-1-15 17:16
jianxitt 发表于 2015-1-15 17:10
释放内存,我也没试过,不太清楚.
不过,TC里有个

我知道有这个 但是我不知道怎么用   怎么写  写在哪里




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