#!/user/bin/env python
# _*_ coding:utf-8 _*_
import os
import PIL
import numpy
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation# 刷新用的
import time
need_updata=True
#获取手机截图
def get_screen_img():
#获取哦当前界面手机截屏
os.system('adb shell screencap -p /sdcard/screen.png ')
#下载当前这个截图当当前电脑当前文件接下
os.system('adb pull /sdcard/screen.png ')
return numpy.array(PIL.Image.open('screen.png'))
#条的函数
def jump_to_next(point1,point2):
#取出两次点击位置的x,y坐标
x1,y1=point1;
x2,y2=point2;
#通过勾股定理计算两次点击之间的距离
distance=((x2-x1)**2+(y2-y1)**2)**0.5
#点击 #四个数字 按下 抬起的x,y坐标 {}为占位符 #1.35 一个像素点按压1.35毫秒
os.system('adb shell input swipe 320 410 320 410 {}'.format(int(distance*1.35)));
#event 默认传过来的 点击事件的坐标位置
def on_click(event,coor=[]):#[(1,2),(1,2)] ;列表里面加元祖
global need_updata # 使用全局变量 need_updata
#添加点击坐标
coor.append((event.xdata,event.ydata))
if len(coor)==2:
#list集合中的.pop()方法 , 给别人的同时删除最后一个元素
jump_to_next(coor.pop(),coor.pop())
need_updata = True#点击两次之后变为True
# 更新图片(重画图片)
def update_screen(frame):
global need_updata # 使用全局变量 need_updata
if need_updata:
time.sleep(1)#睡一秒钟在画图
axes_image.set_array(get_screen_img()); # 重画图片 get_screen_img()函数加括号 才执行
need_updata=False
return axes_image,
#创建空白的图片
figure=plt.figure()
#吧获取的图片显示到坐标上
axes_image=plt.imshow(get_screen_img(),animated=True)
#调用函数 后面写括号:执行完函数,将返回值传过来
#参数2 函数对象 做单击事件的
figure.canvas.mpl_connect('button_press_event',on_click)
#参数一 刷新的对象,所以没括号
#参数二 图片 接收元祖 所以加逗号 update_screen函数的返回值
#参数三 50毫秒
ani=FuncAnimation(figure,update_screen,interval=50,blit=True)#函数会一直循环
plt.show();
PyThon--写跳一跳外挂
最新推荐文章于 2024-06-23 08:44:58 发布