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

2025-10-19 10:40:00

1、思路分析

1、 把我们要点击的坐标点都放到一个字符串变量中,例如:

字符串 = "345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63"

2、 写一个函数Sub StrToArr(字符串)用来转换分割字符串里的坐标。                咱们看这个字符串,它一共有9个坐标,分别用>这个符合分割开。       "345,56>214,36>77,88>89,21>39,78>11,20>67,34>80,51>13,63"       用split分割函数分割字符串,并且保存到数组arrx里:arrX = Split(字符串, ">")

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、 分割好字符串之后,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) =345

ArrMap(0,1) =56

214,36

  ArrMap(1,0) =214

ArrMap(1,1) =36

77,88

ArrMap(2,0) =77

ArrMap(2,1) =88

89,21

ArrMap(3,0) =89

ArrMap(3,1) =21

39,78

ArrMap(4,0) =39

ArrMap(4,1) =78

11,20

ArrMap(5,0) =11

ArrMap(5,1) =20

67,34

ArrMap(6,0) =67

ArrMap(6,1) =34

80,51

ArrMap(7,0) =80

ArrMap(7,1) =51

13,63

ArrMap(8,0) =13

ArrMap(8,1) =63

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 1

Next

Sub 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

    Next

End 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) 直接转换为可执行语句,  是一种简单 暴-力的解决方法,大赞!

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢