多语言展示
当前在线:172今日阅读:23今日分享:25

学习游戏辅助制作 按键精灵循环点击无规律坐标

需要点击的坐标点没有规律?怎么办呢?坐标值没有规律,我们就无法用变量代替它进行变化,那是不是意味着,我要点击10个点,就要重复写十行代码呢?     想让咱重复写代码?门儿都没有!锵锵锵,小编这里分享一个好用的方法,咱一起来看看~~
工具/原料

按键精灵2014

方法/步骤
1

思路分析1、 把我们要点击的坐标点都放到一个字符串变量中,例如:字符串 = '345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63'

3

3、 分割好字符串之后,arrx里存放的数据情况如下:         arrx(0)=345,56         arrx(1)=214,36         arrx(2)=77,88            arrx(3)=89,21         arrx(4)=39,78         arrx(5)=11,20         arrx(6)=67,34         arrx(7)=80,51         arrx(8)=13,63

4

4、 分割好字符串之后,arry里存放的数据情况如下:         arrx(0)=345,56  分割之后 :  arry(0)=345   arry(1)=56         arrx(1)=214,36  分割之后 :  arry(0)=214   arry(1)=36         arrx(2)=77,88    分割之后 :  arry(0)=77     arry(1)=88         arrx(3)=89,21    分割之后 :  arry(0)=89     arry(1)=21         以此类推……             我们需要使用二维数组来记录: ArrMap(UBound(arrX),UBound(arrY))          ArrMap二维数组,第一维的元素个数 是分割  '> '这个符号的个数,即:坐标个数。         第二维的元素个数 是分割  ', '这个符号的个数,即:x坐标和y坐标         看表格更加直观:分割 '> '   arrX(0-8)  分割 ', '   arry(0)   x坐标分割 ', '   arry(1)   y坐标345,56  ArrMap(0,0) =345ArrMap(0,1) =56214,36  ArrMap(1,0) =214ArrMap(1,1) =3677,88ArrMap(2,0) =77ArrMap(2,1) =8889,21ArrMap(3,0) =89ArrMap(3,1) =2139,78ArrMap(4,0) =39ArrMap(4,1) =7811,20ArrMap(5,0) =11ArrMap(5,1) =2067,34ArrMap(6,0) =67ArrMap(6,1) =3480,51ArrMap(7,0) =80ArrMap(7,1) =5113,63ArrMap(8,0) =13ArrMap(8,1) =63

5

5、 调用Sub StrToArr(字符串) 分割坐标,循环点击坐标点。     代码 字符串 = '345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63'Call StrToArr(字符串)For i = 0 To UBound(ArrMap, 1)    MoveTo arrmap(i, 0), arrmap(i, 1)    TracePrint arrmap(i, 0)& ','&arrmap(i, 1)    LeftClick 1NextSub StrToArr(字符串)    Dim i, j, arrX, arrY    arrX = Split(字符串, '>')    For i = 0 To UBound(arrX)        arrY = Split(arrX(i), ',')        For j = 0 To UBound(arrY)            If j = 0 and i = 0 Then                Redim ArrMap(UBound(arrX),UBound(arrY))            End If            ArrMap(i, j) = arrY(j)        next    NextEnd Sub 注意:           If j = 0 and i = 0 Then               Redim ArrMap(UBound(arrX),UBound(arrY))           End If          这里为什么要在j和i都等于0的时候,定义数组ArrMap的维数和元素个数呢?          因为当j=0 and i=0 的时候,循环才刚刚开始,而二维数组必须要定义才能使用,所以我们需要在循环开始的时候定义,并且,只定义一次。

6

方法二 字符串 = '345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63'坐标 = Split(字符串, '>')For i = 0 To UBound(坐标)    Execute 'MoveTo ' & 坐标(i)    MsgBox 坐标(i)Next  这里使用了vbs的 Execute语句 :执行一个或多个指定的语句。  将Moveto 坐标(i) 直接转换为可执行语句,  是一种简单 暴-力的解决方法,大赞!

推荐信息