python跳一跳

Posted modiqiang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

结果展示:

技术图片

 

 

技术图片

 

 

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

 

以上是关于python跳一跳的主要内容,如果未能解决你的问题,请参考以下文章

python跳一跳辅助学习

《微信跳一跳》通过Python脚本获得高分教程

python跳一跳

python跳一跳

微信跳一跳python怎么刷分_微信跳一跳python使用教程

python_微信 跳一跳