zoukankan      html  css  js  c++  java
  • python跳一跳

    参考:https://www.bilibili.com/video/BV1yW411B7iv?t=5297

    事前的准备:

    adb驱动

    手机调到开发者模式,开启USB调试

    pycharm

    原理

    1.获取手机截图

    2.点击起点,终点

    3.获取坐标

    4.算出距离

    5.算出按压时间

    6.按压松开指令

    7.更新截图

    实现代码如下:

    import os
    import PIL
    import numpy
    import matplotlib.pyplot as plt
    from matplotlib.animation import FuncAnimation
    import time
    
    need_update = True
    
    def get_screen_image():
        os.system('adb shell screencap -p /storage/emulated/0/forjump/screen.jpg')
        os.system('adb pull /storage/emulated/0/forjump/screen.jpg')
        return numpy.array(PIL.Image.open('screen.jpg'))
    
    def jump_to_next(point1,point2):
        x1,y1=point1;x2,y2 = point2
        distance = ((x2-x1)**2+(y2-y1)**2)**0.5
        os.system('adb shell input swipe 320 410 320 410 {}'.format(int(distance*1.35)))
    
    
    def on_click(event,coor=[]):#绑定鼠标单击事件
        global need_update
        coor.append((event.xdata,event.ydata))
        if len(coor)==2:
            jump_to_next(coor.pop(),coor.pop())
        need_update=True
    
    def updata_screen(frame):#刷新图片
        global need_update
        if need_update:
            time.sleep(1)
            axes_image.set_array(get_screen_image())
            need_update = False
        return axes_image,
    
    figure=plt.figure()#创建空白图片(画布)
    axes_image =plt.imshow(get_screen_image(),animated=True)#把获取图画在坐标轴
    figure.canvas.mpl_connect('button_press_event',on_click)
    ani=FuncAnimation(figure,updata_screen,interval=50,blit=True)
    plt.show()

    结果展示:

    不过好像被微信给察觉到可疑的操作了....

  • 相关阅读:
    估算并发用户数公式,性能测试估算
    jmeter 环境部署、数据库设置、分布式设置、多网卡配置等随笔
    JMETER 不同线程组 变量值 的参数传递
    sar命令性能分析
    系统性能分析思路
    数据库基本操作Day1
    装饰器

    复杂的用户行为逻辑
    运行逻辑
  • 原文地址:https://www.cnblogs.com/modiqiang/p/12993656.html
Copyright © 2011-2022 走看看