大家好,我是公众号3分钟学堂的郭立员~

之前也做过模拟滑动的效果,是通过随机做的,虽然已经很随机,但是感觉不像是人手动滑动的效果,少了那种比较自然的停顿感。

按键精灵为什么无法模拟滑动(为了过滑动验证)(1)

看这个图记录我手动滑的路径,图中我标注了几个位置,这些位置的红点比较密集,说明滑动到此处速度变缓了(停顿)。

怎么才能模拟这个停顿感呢,我想到一个方法是直接原封的复刻下来。

怎么复刻?

假设线的长度是1000单位,记录下相邻两个点之间的距离,这些距离作为我们滑动的间隔,然后循环执行滑动。

这里我说的是1000单位,并不是1000像素或者别的,因为它是一个比例,比如300像素的距离,那么分成1000份,每一份是0.3像素。

{18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16}

这里我随便画了一条线,它的间距是上面这组数字,看一下用这组数字画出的线的效果。

按键精灵为什么无法模拟滑动(为了过滑动验证)(2)

这是一个300像素长度的线,可以看到它的停顿点是有明显的疏密效果的。

这个效果的代码是:

Dim n=0 Dim arrx={18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16} Dim x=79 Dim y=700 Dim d=300 TouchDown x,y, 1 For i = 0 To UBound(arrx) n = n arrx(i) / 1000 * d TouchMove x n,y,1,1 Next Delay 1000 TouchUp 1

代码中(x,y)是起始点,d是滑动的长度,其他都是固定的。

是不是想手动划线还有弧度的,并不是一条直线,这个效果也是可以做出来的,所谓弧度,就是纵坐标的变化,那么我做一个存储纵坐标变化的数组。

{0,1,0,0,-1,-2,-1,0,-1,0,1,-1,-1,-1,-1,0,0,0,-1,0,-1,1,-1,-1}

按键精灵为什么无法模拟滑动(为了过滑动验证)(3)

效果就出来了,这里边数值越大,线的变化越明显。

Dim n=0 Dim arrx={18,20,32,24,146,126,82,73,37,41,34,26,38,20,14,14,15,24,33,42,51,44,30,16} Dim arry={0,1,0,0,-1,-2,-1,0,-1,0,1,-1,-1,-1,-1,0,0,0,-1,0,-1,1,-1,-1} Dim x=79 Dim y=700 Dim d=300 TouchDown x,y, 1 For i = 0 To UBound(arrx) n = n arrx(i) / 1000 * d TouchMove x n,y arry(i),1,1 Next Delay 1000 TouchUp 1

留个思考题:

用上面的方法,斜线怎么画出来?

好了就这些内容,觉得还行帮忙点个赞~

=正文完=

,