python3实现跳一跳点击跳跃


Posted in Python onJanuary 08, 2018

借鉴了网上一些大神的代码和思路,这里整理一下写出点击跳跃玩跳一跳这个小游戏的思路

一、整体思路

棋子所在的坐标以及下一步所要到的坐标,根据两个坐标计算出两点之间距离进行跳跃。

二、分布思路

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之print详解
Sep 28 Python
Python获取Windows或Linux主机名称通用函数分享
Nov 22 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
利用python生成一个导出数据库的bat脚本文件的方法
Dec 30 Python
Django JWT Token RestfulAPI用户认证详解
Jan 23 Python
python 接口实现 供第三方调用的例子
Aug 13 Python
详解python中docx库的安装过程
Nov 08 Python
pytorch 图像中的数据预处理和批标准化实例
Jan 15 Python
不到20行实现Python代码即可制作精美证件照
Apr 24 Python
详解如何修改python中字典的键和值
Sep 29 Python
Python通过递归函数输出嵌套列表元素
Oct 15 Python
用Python 执行cmd命令
Dec 18 Python
分数霸榜! python助你微信跳一跳拿高分
Jan 08 #Python
Python爬虫通过替换http request header来欺骗浏览器实现登录功能
Jan 07 #Python
ubuntu环境下python虚拟环境的安装过程
Jan 07 #Python
详解Python核心编程中的浅拷贝与深拷贝
Jan 07 #Python
用python实现的线程池实例代码
Jan 06 #Python
pip matplotlib报错equired packages can not be built解决
Jan 06 #Python
Python实现的朴素贝叶斯分类器示例
Jan 06 #Python
You might like
动画 《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php轻量级的性能分析工具xhprof的安装使用
2015/08/12 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
2015/08/04 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
javascript与jquery动态创建html元素示例
2016/07/25 Javascript
深入理解Webpack 中路径的配置
2017/06/17 Javascript
vue给对象动态添加属性和值的实例
2019/09/09 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[02:30]联想杯DOTA2完美世界全国高校联赛—北京站现场
2015/11/16 DOTA
[01:15:16]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第一场 1月26日
2021/03/11 DOTA
python实现数组插入新元素的方法
2015/05/22 Python
Python中取整的几种方法小结
2017/01/06 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python高级用法总结
2018/05/26 Python
Python使用pymongo模块操作MongoDB的方法示例
2018/07/20 Python
django中的图片验证码功能
2019/09/18 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
哪些是python中web开发框架
2020/06/17 Python
Django基于Models定制Admin后台实现过程解析
2020/11/11 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
介绍一下EJB的体系结构
2012/08/01 面试题
生产部经理岗位职责
2013/12/16 职场文书
单位实习证明怎么写
2014/01/17 职场文书
走群众路线学习笔记
2014/11/06 职场文书
股份转让协议书范本
2015/01/27 职场文书
团员个人年度总结
2015/02/26 职场文书
2015年乡镇人大工作总结
2015/04/22 职场文书