以前我回的一个帖子跟这个问题类似
不知道能不能给你写启发,当时的问题就是捡去游戏物品,地上很多同样的,要挨个点一遍,把能捡的捡走。
其实你的问题不应该是如何区分是否是你的物品,而是如果在点完一个物品之后,不管是否能够捡起都跳过去继续找下一个。这才是你需要解决的问题。换成这个思路之后,再看看找图的说明 scantype: 扫描方式,0: 从左到右,从上到下 1: 从左到右,从下到上 2: 从右到左,从上到下 3: 从右到左,从下到上,只可以看出系统扫图的时候是遵循你设定的方式进行扫描的假设你用的是方式0
你要用一个循环解决这个问题
sx=0
sy=0//扫描区域左上角坐标
图片序号=窗口.找图(窗口句柄,sx,sy,1440,900,"d:\\111.bmp|d:\\222.bmp",#203040,0.8,0,rx,ry)
循环 (图片序号!=-1)
窗口.鼠标左键单击(窗口句柄,rx+10,ry+5)
辅助.等待(200)
sy=ry+1//缩小搜索区域,从当前图片向下1个像素开始扫描
图片序号=窗口.找图(窗口句柄,sx,sy,1440,900,"d:\\111.bmp|d:\\222.bmp",#203040,0.8,0,rx,ry)
循环结束
这样的算法理论上只有两个物品在像素级别同样高度才有可能被忽略掉,剩下的都会被遍历。应该可以解决你的问题,别忘了要采纳呀! |