TC官方合作论坛

 找回密码
 立即注册
查看: 1089|回复: 2

[已解决] 请高手指点 在别人那复制的整理了一下 生成却不能用

[复制链接]
发表于 2013-12-2 04:54:50 | 显示全部楼层 |阅读模式

马上加入TC

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

x
空间 实验
//默认空间
跑图线程,采集线程,坐标
功能 启动()//线程调用的第一个功能,线程句柄
路径数组=数组[]//声明变量
实验.前期处理()//做一些前期处理
路径数组=实验.获取路径()//获取界面设置数据
跑图线程=线程.开启("实验.跑地图",路径数组)
采集线程=线程.开启("实验.寻找采集目标","")
功能结束
功能 前期处理()
窗口句柄=窗口.鼠标所在窗口句柄()
窗口.设置位置(窗口句柄,0,0)
功能结束
功能 停止()
线程.关闭(跑图线程)
功能结束
功能 获取路径()
路径数组=数组[]//声明数组变量
数量=列表框.得到个数("列表框0")//获取列表框0的选项数量
路径数组=数组空间.重定义(路径数组,假,数量)
遍历(序号=0;序号<数量;序号++)
  路径数组[序号]=列表框.获得文本("列表框0",序号)
遍历结束
调试输出("获取坐标数组,数量:"&数量)
返回 路径数组
功能结束
功能 跑地图(路径数组)
数量,x,y//声明一些必要变量
数组空间.大小(路径数组,数量)
循环(真)
  遍历(序号=0;序号<数量;序号++)
   调试输出("开始跑地图,坐标:"&路径数组[序号])
   坐标=路径数组[序号]
   实验.自动寻路(坐标)
   实验.打开大地图()
   鼠标.移动(x,y)
   鼠标.左键单击()
   辅助.等待(1000)
   鼠标.移动(0,0)
   键盘.按键(77)
   实验.已经到达()
  遍历结束
  辅助.等待(500)
循环结束
功能结束
   
功能 自动寻路(路径坐标)
返回串
字符串.分割(路径坐标,",",返回串)
x=返回串[0],y=返回串[1]
实验.打开大地图()
鼠标.移动(x,y)
鼠标.左键单击()
辅助.等待(1000)
鼠标.移动(0,0)
键盘.按键(77)
功能结束
功能 打开大地图()
x,y
图像.找图(0,0,1024,768,"rc:大地图.bmp",#050505,0.9,0,x,y)
如果(x<0)
  调试输出("打开大地图")
  键盘.按键(77)
如果结束
辅助.等待(1000)
功能结束
功能 已经到达()
x,y
调试输出("判断是否到达坐标")
循环(真)
  图像.找图(0,0,1024,768,"rc:寻路结束.bmp|rc:寻路结束2.bmp",#050505,0.9,0,x,y)
  如果(x>0)
   调试输出("已经到达坐标")
   跳出
  如果结束
循环结束
功能结束
功能 寻找采集目标()
x,y
循环(真)
  图像.找图(880,77,986,170,"rc:草药.bmp",#050505,0.9,0,x,y)
  如果(x>0)
   调试输出("找到采集目标")
   线程.暂停(跑图线程)
   调试输出("暂停跑图线程")
   鼠标.移动(x+3,y+3)
   鼠标.左键单击()
   辅助.等待(1000)
   鼠标.移动(0,0)
   实验.已经到达()
   实验.开始采集()
   辅助.等待(1000)
   实验.自动寻路(坐标)
   线程.恢复(跑图线程)
   调试输出("恢复跑图线程")
  如果结束
  辅助.等待(500)
循环结束
功能结束
功能 开始采集()
x,y
是否采集=实验.鼠标扫描(x,y)
如果(是否采集)
  调试输出("开始采集")
  鼠标.移动(x,y)
  辅助.等待(500)
  鼠标.左键单击()
  辅助.等待(1000)
  鼠标.移动(0,0)
  实验.等待采集完毕()
  辅助.等待(1000)
  键盘.按键(90,3)
  调试输出("拾取物品")
  返回 0
如果结束
功能结束
功能 鼠标扫描(&x,&y)
//*********绘制阿基米德螺旋线*********
//*阿基米德螺旋线的标准极坐标方程为
//ρ=at+P0
//式中:
//a—阿基米德螺旋线系数,mm/°,表示每旋转1度时极径的增加(或减小)量;
//t—极角,单位为度,表示阿基米德螺旋线转过的总度数;
//p0—当t=0°时的极径,mm。
//***p0为初始极径
初始极径 = 5    // 这个的值是控制初始的内圈大小,值越大,内圈越大
倍数 = 4 //放大倍数,这里也可以根据情况做调整
系数=2      //阿基米德螺旋线系数
圆周率 = 3.1415926  
半径,极角,返回x,返回y
////画线的起始点坐标(起始x,起始y)
// 表示的是要从那一点开始为基准点,逐渐向外扫描
起始x=520,起始y=430
极角=圆周率/2
///////移动到起点
鼠标.移动(起始x,起始y+倍数*初始极径+系数*极角)
辅助.等待(2)
遍历(i=0;i<300;i++)   // 这里表示一共执行3000次。 具体要执行多少次。根据不同情况调整
  半径 = 初始极径+系数*极角    //表示的是圆的半径
  // 计算鼠标移动的下一点坐标位置
  x = 起始x+类型.转整型(倍数*半径*数学.余弦值(极角))
  y = 起始y+类型.转整型(倍数*半径*数学.正弦值(极角))
  // 极角的增加值越大,跨的角度就越大。这个值的大小,可以自我调整达到理想状态
  // 比如增加量可以用以下的值 0.02 0.03 0.05 0.07 0.08 0.1 ……
  // 值越大,跨的角度越大,误差越大,但是消耗的时间短
  // 值越小,跨的角度越小,误差越小,但是消耗的时间长
  极角 = 极角 + 0.1   // 极角 = 极角 + 0.05
  // 鼠标移动到下一点的位置,完成一次画线操作
  鼠标.移动(x,y)
  图像.找图(0,0,1024,768,"rc:鼠标特征.bmp",#050505,0.9,0,返回x,返回y)
  如果(返回x>0)
   返回 真
  如果结束
  辅助.等待(2)
遍历结束
返回 假
功能结束
功能 等待采集完毕()
x,y
循环(真)
  图像.模糊找色(370,560,680,600,#fbaf27,0.8,0,x,y)
  如果(x<0)
   调试输出("采集完毕")
   跳出
  如果结束
  辅助.等待(500)
循环结束
功能结束
功能 热键0_热键()//启动()
//这里添加你要执行的代码
实验.启动()
功能结束
功能 热键1_热键()//停止()
//这里添加你要执行的代码
实验.停止()
功能结束
空间结束
//空间结束语句


帮我完成必须采纳,求高手!   错误信息:数组 返回串 调用越界   行号:51
回复

使用道具 举报

发表于 2013-12-2 11:14:06 | 显示全部楼层
都提示你问题的地方了,你好好看看代码51行那里的代码
  1. 返回串
  2. 字符串.分割(路径坐标,",",返回串)
  3. x=返回串[0],y=返回串[1]
复制代码


这里传过来的参数 路径坐标 是否正确,你应该判断下,这样会影响你的分割,所以你最好需要判断下是否分割成功,如果分割成功,返回串这个数组才能用,还有就是要注意数组的大小,这个也容易越界。
回复 支持 反对

使用道具 举报

发表于 2013-12-2 08:02:13 | 显示全部楼层
你们用的版本都一样吗
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-29 01:59 , Processed in 0.052445 second(s), 23 queries .

Powered by 海安简单软件服务部

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

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