TC官方合作论坛

 找回密码
 立即注册
查看: 1656|回复: 10

[问题] 帮解决 十分感谢

[复制链接]
发表于 2011-10-19 21:51:30 | 显示全部楼层 |阅读模式

马上加入TC

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

x
1.jpg(11.38 K)
2011-10-19 21:38:29

空间 我的程序
功能 逻辑型 开始_点击()  
//这里添加你要执行的代码,这里是你点击开始按钮执行的代码
整型 窗口句柄
窗口句柄=窗口.找到窗口("123)")
窗口.置顶(窗口句柄)
窗口.设置位置(窗口句柄,0,0)
辅助.等待(1000)
字符型 按键码
按键码=编辑框.获得文本("编辑框0")
整型 m
m=转换.字符型转整型(按键码)
循环(m=!0)
m=m-1
整型 x
整型 y
图像.区域找色(519,42,741,410,#394d9b,0,x,y)
鼠标.移动(x,y)
超级鼠标.左键双击(1)
鼠标.移动(507,474)
超级鼠标.左键单击(1)
如果结束
循环结束

                          这个程序 我想是想在购买的里面输入一个购买的数量 然后实现购买

我用了m循环 和编辑框 但是不知道怎么才能联系到一起

也不知道 最后怎么样 当购买完毕后自动跳出

高手求解

回复

使用道具 举报

发表于 2011-10-20 10:03:42 | 显示全部楼层
从你的程序思路来看,是执行一次就购买一件物品.
(假设购买过程是正确的)购买物品的代码是这样:
  1. 图像.区域找色(519,42,741,410,#394d9b,0,x,y)
  2. 鼠标.移动(x,y)
  3. 辅助.等待(500)//注意设置等待
  4. 超级鼠标.左键双击(1)
  5. 辅助.等待(500)
  6. 鼠标.移动(507,474)
  7. 辅助.等待(500)
  8. 超级鼠标.左键单击(1)
复制代码
那么购买M件物品就是执行M次上述的操作,而购买完毕,就是循环结束的时候.那么修改后的代码应该是这样
  1. 功能 逻辑型 开始_点击()  
  2. 整型 窗口句柄
  3. 整型 x,y
  4. 整型 物品件数
  5. 窗口句柄=窗口.找到窗口("123)")
  6. 窗口.置顶(窗口句柄)
  7. 窗口.设置位置(窗口句柄,0,0)
  8. 辅助.等待(1000)
  9. 物品件数=转换.字符型转整型(编辑框.获得文本("编辑框0"))
  10. 循环(物品件数 > 0)
  11. 图像.区域找色(519,42,741,410,#394d9b,0,x,y)
  12. 鼠标.移动(x,y)
  13. 辅助.等待(500)
  14. 超级鼠标.左键双击(1)
  15. 辅助.等待(500)
  16. 鼠标.移动(507,474)
  17. 辅助.等待(500)
  18. 超级鼠标.左键单击(1)
  19. 辅助.等待(500)
  20. 物品件数 = 物品件数 - 1
  21. 循环结束
复制代码
回复 支持 反对

使用道具 举报

发表于 2011-10-20 11:17:02 | 显示全部楼层
:~...  已经解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-21 18:02:15 | 显示全部楼层
回复 3楼小东的帖子

哈哈  谢谢 东哥指导   

东哥已经帮解决
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-21 18:12:33 | 显示全部楼层
回复 2楼Soy_meng的帖子

空间 我的程序

功能 逻辑型 开始_点击()  
//这里添加你要执行的代码,这里是你点击开始按钮执行的代码
整型 窗口句柄
窗口句柄=窗口.找到窗口("全")
窗口.置顶(窗口句柄)
窗口.设置位置(窗口句柄,0,0)

整型 x1
整型 y1


整型 x
整型 y
整型 丝绸
整型 高级蓝宝石
整型 绒线
整型 销售确定
循环(丝绸>0)
丝绸=图像.找图(0,0,1440,900,"I:\\丝绸.bmp",#be6267,1.0,0,x1,y1)
如果(丝绸==0)
鼠标.移动(x1+5,y1+5)
超级鼠标.左键按下()
鼠标.移动(630,240)
超级鼠标.左键弹起()
辅助.等待(500)
销售确定=图像.找图(0,0,1440,900,"I:\\销售确定.bmp",#5b4841,1.0,0,x,y)
  如果(销售确定==0)
  鼠标.移动(x+5,y+5)
  超级鼠标.左键单击(1)
  鼠标.移动(502,476)
  超级鼠标.左键单击(1)
  如果结束
  如果(销售确定==-1)
鼠标.移动(502,476)
  超级鼠标.左键单击(1)
如果结束
如果结束
丝绸=丝绸-1
循环结束
返回 真  
//函数返回语句   
功能结束  

功能 逻辑型 退出_点击()  
//这里是你退出的时候要执行的代码,这类是你点击退出按钮执行的代码

辅助.退出()
返回 真  
//函数返回语句   
功能结束  

空间结束     
//命名空间结束语句

      meng  这是我按照你说的 写得程序  

说下我的思路  1.先找到“丝绸”对其左键按下,移动到销售框中
              2. 当 “丝绸”是一个的时候直接卖出
              3.当“丝绸”是多个的时候会弹出 “销售确定”的字样  然后卖出
              4.找到背包中所有的 “丝绸”都卖出 循环结束
程序是没有错误,但是 不会执行。。。问题出在哪里
回复 支持 反对

使用道具 举报

发表于 2011-10-21 20:14:09 | 显示全部楼层
1.确认找图是否正确
2.鼠标移动后一定要调用[辅助.等待(500)],然后再点击.因为鼠标操作是个异步的过程,可能在鼠标还没移动到目标位置的时候就已经点击了
回复 支持 反对

使用道具 举报

发表于 2011-10-21 20:31:52 | 显示全部楼层
如果没问题,你尝试下把代码改成这样:
  1. 功能 逻辑型 开始_点击()  
  2. 整型 窗口句柄
  3. 窗口句柄=窗口.找到窗口("全")
  4. 窗口.置顶(窗口句柄)
  5. 窗口.设置位置(窗口句柄,0,0)
  6. 整型 x,y,x1,y1
  7. 整型 丝绸
  8. 整型 高级蓝宝石
  9. 整型 绒线
  10. 整型 销售确定
  11. 丝绸=图像.找图(0,0,1440,900,"I:\\丝绸.bmp",#be6267,1.0,0,x1,y1)
  12. 循环(丝绸 == 0)
  13.         鼠标.移动(x1+5,y1+5)
  14.         辅助.等待(500)
  15.         超级鼠标.左键按下()
  16.         辅助.等待(500)
  17.         鼠标.移动(630,240)
  18.         辅助.等待(500)
  19.         超级鼠标.左键弹起()
  20.         辅助.等待(500)
  21.         销售确定=图像.找图(0,0,1440,900,"I:\\销售确定.bmp",#5b4841,1.0,0,x,y)
  22.           如果(销售确定==0)
  23.                   鼠标.移动(x+5,y+5)
  24.                 辅助.等待(500)
  25.                   超级鼠标.左键单击(1)
  26.                 辅助.等待(500)
  27.                   鼠标.移动(502,476)
  28.                 辅助.等待(500)
  29.                   超级鼠标.左键单击(1)
  30.         否则
  31.                 鼠标.移动(502,476)
  32.                 辅助.等待(500)
  33.                   超级鼠标.左键单击(1)
  34.           如果结束
  35.         丝绸=图像.找图(0,0,1440,900,"I:\\丝绸.bmp",#be6267,1.0,0,x1,y1)       
  36. 循环结束
  37. 返回 真   
  38. 功能结束  
复制代码
回复 支持 反对

使用道具 举报

发表于 2011-10-21 23:29:04 | 显示全部楼层
不懂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-10-22 21:18:02 | 显示全部楼层
回复 7楼Soy_meng的帖子

  循环结束 上面的 那句 上面意思呢

丝绸=图像.找图(0,0,1440,900,"I:\\丝绸.bmp",#be6267,1.0,0,x1,y1)

为什么要重复写出

不用写 这句话吗  丝绸=丝绸-1
回复 支持 反对

使用道具 举报

发表于 2011-10-23 01:28:02 | 显示全部楼层

一、2楼的代码思路是,每执行一次卖出一件物品,而物品件数由界面得到,因此循环条件是(物品件数 > 0),执行完循环体后(物品件数-1),当物品件数等于0的时候退出循环.

二、7楼的代码思路是物品栏中有多个物品,扫描物品栏,(执行找图语句),如果找到,得到第一张图的坐标(也就是物品栏中第一个物品),执行完操作后,在循环末尾再次调用找图语句是要再一次扫描物品栏,直到物品栏中不存在目标物品的时候退出循环,所以这里的循环条件是(丝绸 == 0)

所以说,写循环的时候要确定循环条件,就要清楚什么时候退出循环.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-6-28 17:37 , Processed in 0.044931 second(s), 23 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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