TC官方合作论坛
标题:
【坐标】怎样将编辑框的坐标依次输入并点击前进。
[打印本页]
作者:
hongzhi725
时间:
2013-10-10 23:59
标题:
【坐标】怎样将编辑框的坐标依次输入并点击前进。
我写了一个,但是不知道为什么只在一个点了……附源码:(一部分)
i=0,c1,返回串
源串=编辑框.获得文本("编辑框0")
分隔符=","
字符串.分割(源串,分隔符,返回串)
数组空间.大小(返回串,c1)
循环(真)
如果(QWER.是否到达()==真)
dm.KeyPressChar("m")
dm.delay(20)
如果(i<c1)
dm.MoveTo(返回串[i]/4*3+45+返回串[i]%4,返回串[i+1]%4*3+48+返回串[i]%4)
i=i+2
如果结束
dm.delay(20)
dm.LeftClick()
dm.delay(20)
dm.KeyPressChar("m")
循环(真)
调试输出(QWER.是否到达())
循环(QWER.是否到达())
QWER.画圆采矿()
跳转 A
循环结束
循环结束
A:
如果结束
循环结束
功能结束
复制代码
作者:
dongyijun1979
时间:
2013-10-11 10:30
源串=编辑框.获得文本("编辑框0")
分隔符=","
字符串.分割(源串,分隔符,返回串)
数组空间.大小(返回串,c1)
复制代码
这四句该写进外循环内部吧?哥们,不然移动函数里的参数始终不变啊
作者:
dongyijun1979
时间:
2013-10-11 10:32
你把要移动的位置写进一个二维数组或配置文件,然后循环读取不是更直观吗
作者:
超自然
时间:
2013-10-11 12:59
这代码首先你的M到底达成了没都没谱,QWER.是否到达()为真,按M,不管实现了没,下面小循环中又是这函数,如果你的M因为网络延迟或者卡机之类没实现,也会走到小循环中.既然外面是否到达为true,那么此时小循环中也会得true
小循环得真之后就跳转到A,跳转这玩意是一去不回头的,你还怎么读下一数组??
这玩意应该是调用,而不能goto
综上:建议趁早把按键哪套路数全丢马桶里去,接受微软的建议,除非底层的特殊场合,否则应尽量避免使用goto,尽早学会使用调用
作者:
hongzhi725
时间:
2013-10-11 13:45
回复
4楼
超自然
的帖子
我都没看过按键的教程,更没玩过按键……
作者:
hongzhi725
时间:
2013-10-11 13:46
你把要移动的位置写进一个二维数组或配置文件,然后循环读取不是更直观吗
dongyijun1979 发表于 2013-10-11 10:32:01
就是您说的这个,我不会额……
作者:
hongzhi725
时间:
2013-10-11 13:47
回复
4楼
超自然
的帖子
功能 是否到达()
第一次,第二次
整型 x,y
dm.SetDict(0,辅助.获取资源路径("rc:")&"dm_soft.txt")
循环(真)
第一次=dm.Ocr(875,16,979,48,"DC7338-000000",1.0)
辅助.等待(500)
//调试输出(第一次)
第二次=dm.Ocr(875,16,979,48,"DC7338-000000",1.0)
//调试输出(第二次)
如果(第一次==第二次)
返回 真
否则
返回 假
如果结束
循环结束
功能结束
复制代码
作者:
超自然
时间:
2013-10-11 14:07
问题不是说你这是否到达函数,问题出在你最开始那段代码上,最大的问题是goto的使用,goto之后是不会再回这循环的,或者能回来,但是一切又都是重新开始,变量的值又从头来过,所以只会跑第一组坐标
其次,你的if没套好,假如卡住或者网络延迟等原因,导致M没打开地图,就会出错,因为你没考虑M没M出来时该咋办,建议优化
作者:
hongzhi725
时间:
2013-10-11 21:03
回复
8楼
超自然
的帖子
哦,明白了!谢谢!
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1