借鉴了网上一些大神的代码和思路,这里整理一下写出点击跳跃玩跳一跳这个小游戏的思路
一、整体思路
棋子所在的坐标以及下一步所要到的坐标,根据两个坐标计算出两点之间距离进行跳跃。
二、分布思路
1、根据命令截图获取初始图保存到手机,然后上传到本地文件夹
2、将获取的截图放入新建的坐标轴中(matplotlib)
3、通过鼠标点击事件获取所在初始坐标以及重点坐标,并计算出直线距离
4、进行跳跃,跳跃完成后清空坐标并更新截图
三、所用到的相关技术或模块
1、python3基础
2、numpy
3、matplotlib
4、python中的os模块
5、adb工具包
四、代码
__author__ = '周雁冰' import os import PIL,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 /sdcard/screen.png') # 获取手机当前界面截图 os.system('adb pull /sdcard/screen.png') # 下载当前截图到电脑当前文件夹下 return numpy.array(PIL.Image.open('screen.png')) #转为array返回 # 计算弦的长度 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))) # 按下横纵左边 放开横纵坐标 按压时间 2K的屏幕弹跳系数为1 # 绑定鼠标单击事件 def on_calck(event, coor=[]): # [(x,y),(x2,y2)] global need_update coor.append((event.xdata, event.ydata)) # 获取x和y坐标位置放入coor数组中 if len(coor) == 2: jump_to_next(coor.pop(), coor.pop()) # 获取到两个坐标后计算长度并清空数组 need_update = True def update_screen(frame): # 更新图片 global need_update if need_update: time.sleep(1) # 因为跳跃需要时间所以这里需要休眠1s,然后重新获取图片 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_calck) ani = FuncAnimation(figure, update_screen, interval=50, blit=True) # 实例化 FuncAnimation更新画布图片 50为50ms plt.show() # 展示坐标图
请点击这里获取:跳一跳源代码
更多内容大家可以参考专题《微信跳一跳》进行学习。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍使用Python实现跳一跳自动跳跃功能,包括了使用Python实现跳一跳自动跳跃功能的使用技巧和注意事项,需要的朋友参考一下 1. OpenCV:模板匹配。 获得小跳棋中心位置 2. OpenCV:边缘检测。 获得下一方块中心位置 Python+ADB+OpenCv,实现「 跳一跳 」自动化。 / 01 / ADB ADB工具即Android Debug Brid
本文向大家介绍python3 tkinter实现点击一个按钮跳出另一个窗口的方法,包括了python3 tkinter实现点击一个按钮跳出另一个窗口的方法的使用技巧和注意事项,需要的朋友参考一下 如下所示: 以上这篇python3 tkinter实现点击一个按钮跳出另一个窗口的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍微信跳一跳辅助Java代码实现,包括了微信跳一跳辅助Java代码实现的使用技巧和注意事项,需要的朋友参考一下 微信跳一跳辅助的Java具体实现代码,供大家参考,具体内容如下 1.参考知乎教你用Python来玩微信跳一跳,鉴于本人Python一直都是半吊子水平,之前打算用python刷分,可无奈安装python环境各种模块缺失,报错不停,于是乎,使用Java重新实现了一下。 2.环境配
本文向大家介绍微信跳一跳刷分java代码实现,包括了微信跳一跳刷分java代码实现的使用技巧和注意事项,需要的朋友参考一下 朋友圈晒跳一跳成绩好久了,今天无意中看到以前一个同事小妞晒用代码刷分的视频,百度了一下果然看到了代码(代码在最后),几经波折,终于成功运行,刷了一点分数。 首先大概说一下步骤: 1.百度下载刷分代码 2.安装adb 3.找个手机使用USB调试模式连接电脑 4.启动跳一跳微信小
本文向大家介绍JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转,包括了JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转的使用技巧和注意事项,需要的朋友参考一下 程序要求: 编写一个html文件的网页代码,页面包含一个下拉列表框、一个文本框和一个按钮,下拉列表框选择要去的网站,当选择完毕后文本框中出现对应的网址。点击确认跳转按钮后访问文本框中出现的网址。 实现效果:
本文向大家介绍微信跳一跳自动脚本C#代码实现,包括了微信跳一跳自动脚本C#代码实现的使用技巧和注意事项,需要的朋友参考一下 前言 CSDN前阵子推送了篇文章,讲的是微信跳一跳的技术实现,大致浏览,发现难度不高,很适合练手。 思路 ADB得到屏幕截图,转换成bitmap逐像素分析图像,得到跳跃起点和终点坐标,最后ADB按压屏幕进行跳跃 相关知识 ADB创建 ·在https://adb.clockw