按键精灵 找图 问题 多选一 重复找图

来源:百度知道 编辑:UC知道 时间:2024/07/07 20:09:51
请教各位能人大侠一个问题,希望能得到回复,谢谢!

在某个区域内有25个一样的房间(也可以理解为有25张图片)

房间有一定的限制,其表现为进入失败。但从图上看不出来有限制的和无限制的有什么区别

我用找图功能可以找到距离点 (0,0)最近的符合的房间,点击进入

如果进入失败,重复找图后还是会找到上次进入失败的房间,既距离点 (0,0)最近的房间。如此重复直到该房间消失才会去找其他房间

请问怎样才能避免这种情况呢?我想让按键这样运行:
点击房间发现进入失败后,避开这个房间转而点击其他的符合条件的房间?
其命令该如何加入到下面的脚本中呢?

本人没有任何程序基础,还望多多给予文字提示,非常感谢!

Rem 选择房间区域
VBSCall FindPic(82,167,919,568,"战役.bmp",0.9,x,y)
If x>=0 and y>=0
MoveTo x,y
Delay 500
LeftClick 1
Goto 查找是否进入房间
Else
Goto 选择房间区域
EndIf
能不能不用坐标判定法?

改变一下找图的区域就可以了。
先设置找图区域的左上角坐标和找到的图片的坐标,当找到的图不是自己想要的图的时候就改变找图区域。
大概的实现如下:
int ZSx=82,ZHy=167,ZDx=80,ZDy=165
Rem 选择房间区域
VBSCall FindPic(ZDx+2,167,919,568,"战役.bmp",0.9,x,y)
//在上一次找到图片的右边区域找图
If x>=0 and y>=0
eles
VBSCall FindPic(82,ZDy+2,919,568,"战役.bmp",0.9,x,y)
//在上一次找到图片的下边区域找图
endif
If x>=0 and y>=0
ZDx=x
ZDy=y
MoveTo x,y
Delay 500
LeftClick 1
Goto 查找是否进入房间
Else
Goto 选择房间区域
EndIf

rem 查找是否进入房间
...
//如果是则继续
...
//如果不是则
goto 选择房间区域

========================================
如果想用坐标的话也可以,就是麻烦点把每个房间的区域的右上角和坐下角坐标声明为数组元素,例如有25个房间的话,设置intX1(25),intY1(25),intX2(25),intY2(25)4个数组就可以了,具体方法我就不多说了,会编程的话应该会懂的了。

你的意思我明白,但是在这里很难说清楚.

你把 VBSCall FindPic(82,167,919,568,"战役.bmp",0.9,x,y) 里面的起始点82,167用变量代替,如果找到了图,就把找到的坐标加上图的间隔代入变量,下次再找图就会略过以前那张图了

VBS Dim x1