TC官方合作论坛

 找回密码
 立即注册
查看: 821|回复: 8
打印 上一主题 下一主题

[已解决] 【坐标】怎样将编辑框的坐标依次输入并点击前进。

[复制链接]
跳转到指定楼层
楼主
发表于 2013-10-10 23:59:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我写了一个,但是不知道为什么只在一个点了……附源码:(一部分)
  1. i=0,c1,返回串
  2.     源串=编辑框.获得文本("编辑框0")
  3.     分隔符=","
  4.     字符串.分割(源串,分隔符,返回串)
  5.     数组空间.大小(返回串,c1)
  6.     循环(真)
  7.         如果(QWER.是否到达()==真)
  8.             dm.KeyPressChar("m")
  9.             dm.delay(20)
  10.             如果(i<c1)
  11.                 dm.MoveTo(返回串[i]/4*3+45+返回串[i]%4,返回串[i+1]%4*3+48+返回串[i]%4)
  12.                 i=i+2
  13.             如果结束
  14.             dm.delay(20)
  15.             dm.LeftClick()
  16.             dm.delay(20)
  17.             dm.KeyPressChar("m")
  18.             循环(真)
  19.                 调试输出(QWER.是否到达())
  20.                 循环(QWER.是否到达())
  21.                     QWER.画圆采矿()
  22.                     跳转 A
  23.                 循环结束
  24.             循环结束
  25. A:
  26.         如果结束
  27.     循环结束
  28. 功能结束
复制代码


回复

使用道具 举报

8#
发表于 2013-10-11 14:07:57 | 只看该作者
问题不是说你这是否到达函数,问题出在你最开始那段代码上,最大的问题是goto的使用,goto之后是不会再回这循环的,或者能回来,但是一切又都是重新开始,变量的值又从头来过,所以只会跑第一组坐标
其次,你的if没套好,假如卡住或者网络延迟等原因,导致M没打开地图,就会出错,因为你没考虑M没M出来时该咋办,建议优化
回复 支持 反对

使用道具 举报

沙发
发表于 2013-10-11 10:30:57 | 只看该作者

  1. 源串=编辑框.获得文本("编辑框0")
  2. 分隔符=","
  3. 字符串.分割(源串,分隔符,返回串)
  4. 数组空间.大小(返回串,c1)
复制代码

这四句该写进外循环内部吧?哥们,不然移动函数里的参数始终不变啊
回复 支持 反对

使用道具 举报

板凳
发表于 2013-10-11 10:32:01 | 只看该作者
你把要移动的位置写进一个二维数组或配置文件,然后循环读取不是更直观吗
回复 支持 反对

使用道具 举报

地板
发表于 2013-10-11 12:59:24 | 只看该作者
这代码首先你的M到底达成了没都没谱,QWER.是否到达()为真,按M,不管实现了没,下面小循环中又是这函数,如果你的M因为网络延迟或者卡机之类没实现,也会走到小循环中.既然外面是否到达为true,那么此时小循环中也会得true
小循环得真之后就跳转到A,跳转这玩意是一去不回头的,你还怎么读下一数组??

这玩意应该是调用,而不能goto

综上:建议趁早把按键哪套路数全丢马桶里去,接受微软的建议,除非底层的特殊场合,否则应尽量避免使用goto,尽早学会使用调用
回复 支持 反对

使用道具 举报

5#
 楼主| 发表于 2013-10-11 13:45:19 | 只看该作者
回复 4楼超自然的帖子

我都没看过按键的教程,更没玩过按键……
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2013-10-11 13:46:27 | 只看该作者
你把要移动的位置写进一个二维数组或配置文件,然后循环读取不是更直观吗
dongyijun1979 发表于 2013-10-11 10:32:01
就是您说的这个,我不会额……
回复 支持 反对

使用道具 举报

7#
 楼主| 发表于 2013-10-11 13:47:33 | 只看该作者
回复 4楼超自然的帖子
  1. 功能 是否到达()
  2.     第一次,第二次
  3.     整型 x,y   
  4.     dm.SetDict(0,辅助.获取资源路径("rc:")&"dm_soft.txt")
  5.     循环(真)
  6.         第一次=dm.Ocr(875,16,979,48,"DC7338-000000",1.0)
  7.         辅助.等待(500)
  8.         //调试输出(第一次)
  9.         第二次=dm.Ocr(875,16,979,48,"DC7338-000000",1.0)   
  10.         //调试输出(第二次)
  11.         如果(第一次==第二次)
  12.             返回 真
  13.         否则
  14.             返回 假
  15.         如果结束
  16.     循环结束
  17. 功能结束
复制代码
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2013-10-11 21:03:02 | 只看该作者
回复 8楼超自然的帖子

哦,明白了!谢谢!
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-20 00:55 , Processed in 0.178525 second(s), 24 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

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