• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[郭立员] 【安卓按键】轨迹滑动的写法 [复制链接]

1#

大家好,我是3分钟学堂的郭立员。


给大家带来一个轨迹滑动的写法教程,轨迹滑动的这个名称是在群里看到他们问问题提到的,可以理解为模拟手动滑动,它的应用是在防止平台检测滑动方面使用。

轨迹滑动介绍

所谓轨迹滑动就是滑动不走直线,我对比下普通滑动和轨迹滑动的区别。


【普通滑动】




【轨迹滑动】


人在缓慢滑动屏幕的时候,很难滑出一条直线,通常情况都是曲线的。

曲线原理

一条直线(线段),想要变成曲线,可以在首尾两点之间,加入其它的点,并且这些点偏离原来的直线,最终形成分段的曲线。




这里面有两个要点:


①加入点进行分段,最简单的就是均分,比如加入7个点,平均分成8段

②偏移,坐标加上一个随机数


实例演示

假设起始点的坐标是(100,400),结束点的坐标是(300,400),分成5段。




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




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




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




经过几次调整以后,原本一条直线变成了不规则的曲线。


代码
  1. Dim x1=100,y1=400,x2=300,y2=400
  2. Dim num=5 //分段数
  3. Dim Range=15 //波动范围15像素
  4. Dim x=(x2-x1)/num
  5. For i = 0 To num
  6. If i = 0 Then
  7. TouchDown x1, y1, 1
  8. ElseIf 0 < i < num Then
  9. TouchMove x1 + x * i + Int(Range * Rnd() - Range / 2), y1 + Int(Range * Rnd() - Range / 2),1
  10. Else
  11. Touch x2,y2,1
  12. End If
  13. Delay 100
  14. Next
  15. TouchUp 1
复制代码
延展

①设置滑动速度快慢,这一步是由循环里面的延迟控制,延迟越长,滑动的速度越慢。


②纵坐标分段,我们滑动未必都是横向的,也可能是纵向的,或者斜向的,那么就要求纵向也是分段随机的。


  1. Dim x1=100,y1=200,x2=500,y2=700
  2. Dim num=10 //分段数
  3. Dim Range=15 //波动范围15像素
  4. Dim Rndtime=200 //滑动快慢,单位是毫秒
  5. Dim x=(x2-x1)/num
  6. Dim y=(y2-y1)/num
  7. For i = 0 To num
  8. If i = 0 Then
  9. TouchDown x1, y1, 1
  10. ElseIf 0 < i < num Then
  11. TouchMove x1 + x * i + Int(Range * Rnd() - Range / 2), y1 + y*i+Int(Range * Rnd() - Range / 2),1
  12. Else
  13. TouchMove x2,y2,1
  14. End If
  15. Delay Rndtime
  16. Next
  17. TouchUp 1
复制代码



封装函数
  1. Dim x1=500,y1=200,x2=200,y2=700
  2. Dim num=10 //分段数
  3. Dim Range=15 //波动范围15像素
  4. Dim Rndtime=200 //滑动快慢,单位是毫秒
  5. Call RndSwipe(x1, y1, x2, y2, num, Range, Rndtime)

  6. Function RndSwipe(x1,y1,x2,y2,num,Range,Rndtime)
  7. Dim x=(x2-x1)/num
  8. Dim y=(y2-y1)/num
  9. For i = 0 To num
  10. If i = 0 Then
  11. TouchDown x1, y1, 1
  12. ElseIf 0 < i < num Then
  13. TouchMove x1 + x * i + Int(Range * Rnd() - Range / 2), y1 + y*i+Int(Range * Rnd() - Range / 2),1
  14. Else
  15. TouchMove x2,y2,1
  16. End If
  17. Delay Rndtime
  18. Next
  19. TouchUp 1
  20. End Function
复制代码

封装函数有几个参数:



起始坐标,结束坐标,分段数,随机范围,滑动快慢

点评

江中游  防封专用,郭老师都是精品干货!  发表于 2021/11/23 0:15:39

    已有1评分我要评分查看所有评分

    最后编辑郭立员 最后编辑于 2021-11-11 20:46:17
    本主题由 按键精灵总策划 果壳王子 于 2021/11/11 20:52:38 执行 设置精华/取消 操作
    扫码免费获取我的基础教程【视频教程】
    扫码下方二维码关注我的公众号:3分钟学堂

    QQ交流群:936858410
    2#

    这个必需学习的点

    3#

    来学习。。。

    4#

    这个厉害了 啊

    5#

    奇怪的知识又增加了

    6#

    好东西

    7#

    奇怪的知识又增加了

    承接各类游戏脚本制作,post,手游,端游,办公,自动化

    有偿解决任何按键基础问题(可远程讲解、教会为止)

    如果我的回答能帮助了你,大家可以加个好友互相了解
    QQ : 262832680
    8#

    这个必需学习

    9#

    防封教程,点赞.谢谢!!!

    10#

    怎么识别每个转角的点

    11#

    防封专用,郭老师都是精品干货

    12#

    干货啊

    发新话题 回复该主题