按键精灵为什么无法模拟滑动(为了过滑动验证)
大家好,我是公众号3分钟学堂的郭立员~
之前也做过模拟滑动的效果,是通过随机做的,虽然已经很随机,但是感觉不像是人手动滑动的效果,少了那种比较自然的停顿感。
看这个图记录我手动滑的路径,图中我标注了几个位置,这些位置的红点比较密集,说明滑动到此处速度变缓了(停顿)。
怎么才能模拟这个停顿感呢,我想到一个方法是直接原封的复刻下来。
怎么复刻?
假设线的长度是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}
这里我随便画了一条线,它的间距是上面这组数字,看一下用这组数字画出的线的效果。
这是一个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}
效果就出来了,这里边数值越大,线的变化越明显。
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
留个思考题:
用上面的方法,斜线怎么画出来?
好了就这些内容,觉得还行帮忙点个赞~
=正文完=
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com