找回密码
 加入
搜索
查看: 15068|回复: 40

有关游戏找图等待问题

 火.. [复制链接]
发表于 2009-9-12 10:39:13 | 显示全部楼层 |阅读模式
本帖最后由 那片叶子 于 2009-9-12 12:31 编辑

可不可以在界面找到一张图然后点击,这样游戏人物就跑至那张图,
看到另外一张图出现以后在点击那看见的那张,没看见就停止,等看见了在继续!

以下是找图代码,可用时间延迟来效果很不好,有时候才点一下延迟后也没反映!
不知能否像以上说的那样,等待,继续?

#include <ImageSearch.au3>

$x1=0
$y1=0
;
$result = _ImageSearch("城镇路径1.bmp",1,$x1,$y1,0)
if $result=1 Then
        MouseClick("left", $x1, $y1, 1)
EndIf

$result = _ImageSearch("城镇路径2.bmp",1,$x1,$y1,0)
if $result=1 Then
        MouseClick("left", $x1, $y1, 1)
EndIf
发表于 2009-9-12 10:43:31 | 显示全部楼层
LZ应该使用循环吧
 楼主| 发表于 2009-9-12 11:12:54 | 显示全部楼层
LZ应该使用循环吧
afan 发表于 2009-9-12 10:43


对于循环还是不怎么了解!能否提示下!
 楼主| 发表于 2009-9-12 11:17:58 | 显示全部楼层
#include <ImageSearch.au3>

$x1=0
$y1=0
;
$result = _ImageSearch("城镇路径1.bmp",1,$x1,$y1,0)
if $result=1 Then
        MouseClick("left", $x1, $y1, 1)
EndIf

$result2 = _ImageSearch("城镇路径2.bmp",1,$x1,$y1,0)
if $result2=1 Then
        MouseClick("left", $x1, $y1, 1)
EndIf

以上代码,如果$result1不等于图片1的话就继续寻找,如果等于图片1的话则
运行$result2  怎么写啊!帮帮我!
发表于 2009-9-12 11:29:18 | 显示全部楼层
本帖最后由 afan 于 2009-9-12 11:30 编辑

把需要循环判断的代码放到一个While...Wend循环中,再加个跳出条件即可

While 1
If ...then ...
If... then ...
If ... then Exitloop
Wend

我这没ImageSearch.au3,不好测试~ 还有,是不是只用两次找图,还是继续有更多次。。。
 楼主| 发表于 2009-9-12 11:34:52 | 显示全部楼层
是多次找图!!
发表于 2009-9-12 12:03:03 | 显示全部楼层
你把 ImageSearch.au3 和 相关的图片打包上来吧,我帮你修改完善好了
 楼主| 发表于 2009-9-12 12:18:20 | 显示全部楼层
网卡,你QQ多少,我加你!
发表于 2009-9-12 12:19:14 | 显示全部楼层
没Q~~~~~~~ 算了,我找到了
 楼主| 发表于 2009-9-12 12:21:28 | 显示全部楼层
帮帮我下啦!!
发表于 2009-9-12 12:26:10 | 显示全部楼层
本帖最后由 afan 于 2009-9-12 12:31 编辑
#include <ImageSearch.au3>

Dim $x1, $y1, $s1 = 0, $s2 = 0
While 1
        Sleep(100)
        If $s1 <> 1 Then
                $result = _ImageSearch("城镇路径1.bmp", 1, $x1, $y1, 0)
                If $result = 1 Then
                        MouseClick("left", $x1, $y1, 1)
                        $s1 = 1
                Else
                        ContinueLoop
                EndIf
        EndIf
        If $s2 <> 1 Then
                $result2 = _ImageSearch("城镇路径2.bmp", 1, $x1, $y1, 0)
                If $result2 = 1 Then
                        MouseClick("left", $x1, $y1, 1)
                        $s2 = 1
                Else
                        ContinueLoop
                EndIf
        EndIf
        ExitLoop
WEnd
 楼主| 发表于 2009-9-12 12:29:59 | 显示全部楼层
厉害啊! 非常感谢啊!!!!谢谢afan了!
发表于 2009-9-12 12:33:15 | 显示全部楼层
编辑了下,循环里加了个 Sleep(100) 避免CPU占用过高的~
 楼主| 发表于 2009-9-12 13:57:36 | 显示全部楼层
那这个找图能不能从屏幕左边扫描到右边啊!
发表于 2009-9-12 14:02:49 | 显示全部楼层
不懂意思...
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-25 13:23 , Processed in 0.074410 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表