轨迹滑动的这个名称可以理解为模拟手动滑动,它的应用是在防止平台检测滑动方面使用。答题验证等
轨迹滑动介绍
所谓轨迹滑动就是滑动不走直线,我对比下普通滑动和轨迹滑动的区别。
【普通滑动】

【轨迹滑动】

人在缓慢滑动屏幕的时候,很难滑出一条直线,通常情况都是曲线的。
曲线原理
一条直线(线段),想要变成曲线,可以在首尾两点之间,加入其它的点,并且这些点偏离原来的直线,最终形成分段的曲线。

这里面有两个要点:
①加入点进行分段,最简单的就是均分,比如加入7个点,平均分成8段
②偏移,坐标加上一个随机数
实例演示
假设起始点的坐标是(100,400),结束点的坐标是(300,400),分成5段。

直线的情况,每个点的纵坐标都是400,我们稍微调整一下纵坐标的数值~

调整后,可以看到原本的直线,变成了折线,这里纵坐标调整的数值如果是一个随机数,那么折线的幅度就会是随机不规则的。

继续微调折点的坐标,这一次把横坐标也加一个随机数。

经过几次调整以后,原本一条直线变成了不规则的曲线。
代码
Dim x1=100,y1=400,x2=300,y2=400
Dim num=5 //分段数
Dim Range=15 //波动范围15像素
Dim x=(x2-x1)/num
For i = 0 To num
If i = 0 Then
TouchDown x1, y1, 1
ElseIf 0 < i < num Then
TouchMove x1 + x * i + Int(Range * Rnd() - Range / 2), y1 + Int(Range * Rnd() - Range / 2),1
Else
Touch x2,y2,1
End If
Delay 100
Next
TouchUp 1
延展
①设置滑动速度快慢,这一步是由循环里面的延迟控制,延迟越长,滑动的速度越慢。
②纵坐标分段,我们滑动未必都是横向的,也可能是纵向的,或者斜向的,那么就要求纵向也是分段随机的。
Dim x1=100,y1=200,x2=500,y2=700
Dim num=10 //分段数
Dim Range=15 //波动范围15像素
Dim Rndtime=200 //滑动快慢,单位是毫秒
Dim x=(x2-x1)/num
Dim y=(y2-y1)/num
For i = 0 To num
If i = 0 Then
TouchDown x1, y1, 1
ElseIf 0 < i < num Then
TouchMove x1 + x * i + Int(Range * Rnd() - Range / 2), y1 + y*i+Int(Range * Rnd() - Range / 2),1
Else
TouchMove x2,y2,1
End If
Delay Rndtime
Next
TouchUp 1
封装函数
Dim x1=500,y1=200,x2=200,y2=700
Dim num=10 //分段数
Dim Range=15 //波动范围15像素
Dim Rndtime=200 //滑动快慢,单位是毫秒
Call RndSwipe(x1, y1, x2, y2, num, Range, Rndtime)
Function RndSwipe(x1,y1,x2,y2,num,Range,Rndtime)
Dim x=(x2-x1)/num
Dim y=(y2-y1)/num
For i = 0 To num
If i = 0 Then
TouchDown x1, y1, 1
ElseIf 0 < i < num Then
TouchMove x1 + x * i + Int(Range * Rnd() - Range / 2), y1 + y*i+Int(Range * Rnd() - Range / 2),1
Else
TouchMove x2,y2,1
End If
Delay Rndtime
Next
TouchUp 1
End Function


被折叠的 条评论
为什么被折叠?



