TC官方合作论坛

标题: 新手代码问题~!来大神帮下忙。 [打印本页]

作者: whsxin    时间: 2014-10-13 23:16
标题: 新手代码问题~!来大神帮下忙。
本帖最后由 whsxin 于 2014-10-13 23:22 编辑

功能 自动()
    循环(真)
        图像序号=图像.找图(0,0,800,600,"rc:伊斯塔级.bmp",0,0.8,3,图片X坐标,图片Y坐标)
        如果(图片X坐标>0)
            辅助.等待(200)
            鼠标.移动(图片X坐标+15,图片Y坐标+5)
            辅助.等待(200)
            鼠标.左键单击(1)
            辅助.等待(200)
            跳出
        如果结束
    循环结束
功能结束

这组代码~找到图后左键单击一下,不能多点,然后图片会消失再随机出现。代码如果不加跳出命令就会一直点 一直点。
但是加了跳出命令虽然能实现找到图后只点一次,但下次图片消失再出现的时候就不找图了。这种情况要怎么实现。

主要问题就是:如何实现每次图片消失再出现后 鼠标都去点一次,然后无限循环这步动作。



作者: whsxin    时间: 2014-10-13 23:30
求救 求救~来大神啊
作者: mzbqhbc    时间: 2014-10-13 23:31
本帖最后由 whsxin 于 2014-10-13 23:22 编辑


功能 自动()
    循环(真)
        图像序号=图像.找图(0,0,800,600,"rc:伊斯塔级.bmp",0,0.8,3,图片X坐标,图片Y坐标)
        如果(图片X坐标>0)
            
            鼠标.移动(图片X坐标+15,图片Y坐标+5)
            辅助.等待(200)
            鼠标.左键单击(1)
         
         
        如果结束


  辅助.等待(400)
    循环结束
功能结束



//////////加点延时试试    死循环不加延时很容易出问题


作者: whsxin    时间: 2014-10-13 23:33
本帖最后由 whsxin 于 2014-10-13 23:34 编辑
mzbqhbc 发表于 2014-10-13 23:31

不是延迟的问题!!主要是消失和出现的时候都是随机的。
这个是在线程中启动的代码。

作者: 秋来潮汐    时间: 2014-10-13 23:41
本帖最后由 秋来潮汐 于 2014-10-13 23:43 编辑

在外面再套一个循环
作者: mzbqhbc    时间: 2014-10-13 23:42
本帖最后由 mzbqhbc 于 2014-10-13 23:45 编辑
whsxin 发表于 2014-10-13 23:33
不是延迟的问题!!主要是消失和出现的时候都是随机的。
这个是在线程中启动的代码。
...

功能 自动()
    循环(真)
        图像序号=图像.找图(0,0,800,600,"rc:伊斯塔级.bmp",0,0.8,3,x,y)
        如果(图像序号!=-1)
            调试输出(x&","&y)
            鼠标.移动(图片X坐标+15,图片Y坐标+5)
            辅助.等待(200)
            鼠标.左键单击(1)
         
         
        如果结束


  辅助.等待(400)
    循环结束
功能结束



//////就我看来 一个是延时没有加对地方  ,可能会导致线程卡死出现异常导致找图的返回X坐标和Y坐标返回异常,   还有个可能是你的图片X坐标 和图片Y坐标  是否设置的是全局变量  而在其他线程中  其他的线程改变了这个全局变量  当然也是我的猜想  可以加点调试输出看看  而如果判断使用图像序号判断
作者: whsxin    时间: 2014-10-14 00:08
秋来潮汐 发表于 2014-10-13 23:41
在外面再套一个循环

试了~外面加层循环~还是会一直点。图片每次出现都能找到~!但是找到后就一直的点图片~~!
因为图片的出现与消失是随机的,加延迟没什么大帮助~!有没有什么命令 当图片出现鼠标点一次。当图片再次出现鼠标再去点一次。依次无限循环下去

作者: q273814    时间: 2014-10-14 08:43
弄个全局变量 LastPoint 保存最后一次图片出现的坐标 每次找到图片后 都判断下坐标如果=LastPoint就忽略 如果不一样就去点然后再设置新的全局变量LastPoint
作者: 秋来潮汐    时间: 2014-10-14 10:25
whsxin 发表于 2014-10-14 00:08
试了~外面加层循环~还是会一直点。图片每次出现都能找到~!但是找到后就一直的点图片~~!
因为图片的出现 ...

在找图之前把:图片X坐标=0
作者: milai5201    时间: 2014-10-14 11:28
找图的时候  图片X坐标,图片Y坐标  这2个参数不要设置全局变量
不然你下面判断 图片X坐标>0的时候 会受到干扰

功能 自动()
    循环(真)
        图片X坐标,图片Y坐标
        图像序号=图像.找图(0,0,800,600,"rc:伊斯塔级.bmp",0,0.8,3,图片X坐标,图片Y坐标)
        如果(图片X坐标>0)
            辅助.等待(200)
            鼠标.移动(图片X坐标+15,图片Y坐标+5)
            辅助.等待(200)
            鼠标.左键单击(1)
        如果结束
        辅助.等待(1000)  //如果图片消失的比较慢 自行加大延迟
    循环结束
功能结束
作者: adamyun    时间: 2014-10-14 17:41
q273814 发表于 2014-10-14 08:43
弄个全局变量 LastPoint 保存最后一次图片出现的坐标 每次找到图片后 都判断下坐标如果=LastPoint就忽略 如 ...

我也觉得判断一下坐标是否与上次一样就能解决了
作者: 地狱骑士    时间: 2014-10-15 10:22
支持2楼的方法

  1. 功能 自动()
  2.     x,y
  3.     xx=0
  4.     yy=0
  5.    
  6.     循环(真)
  7.         图像序号=图像.找图(0,0,800,600,"rc:伊斯塔级.bmp",0,0.8,3,x,y)
  8.         如果(x>0 )
  9.             if(x != xx && y != yy )
  10.                 辅助.等待(200)
  11.                 鼠标.移动(x+15,y+5)
  12.                 辅助.等待(200)
  13.                 鼠标.左键单击(1)
  14.                 辅助.等待(200)
  15.                 xx=x
  16.                 yy=y
  17.             endif
  18.         else
  19.             辅助.等待(200)
  20.         如果结束
  21.     循环结束
  22. 功能结束
复制代码





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