python跳一跳编程构造_Python玩“跳一跳” iOS+Win 硬件实现
感谢来自 wangshub 的跳跃距离算法
目前已有的iOS跳一跳辅助需要macOS环境下的WebDriverAgentRunner。而现在介绍的方法在Windows环境下通过物理方法实现,不需要macOS也不需要越狱。
运行环境&工具
Python 3.6 in Windows
Python Pillow库
局域网环境
iToools Airplayer
树莓派 或 arduino (本文使用树莓派)
SG90 舵机
杜邦线、纸板
一小块海绵
橙子或其它多汁水果(可选)
基本思路
使用iOS自带Airplay服务将游戏画面投影到电脑上
使用Pillow库截取电脑屏幕,获得游戏画面
分析图片,计算出跳跃距离,乘以时间系数获得按压时间
将按压时间发送至树莓派,树莓派控制舵机点击手机屏幕
原理 & 步骤
舵机 & 控制器 部分
1.树莓派(OS:Raspbian Jessie)连接上局域网,下载 servo_control.py到树莓派;
2.拿一根杜邦线粘在舵机的摆臂上,并且固定好舵机。如图:
3.取一小块海绵,约10mm*10mm*5mm,不必太精确。海绵中间挖一个小洞。大概是这样:
4.海绵上滴水浸透,放在手机屏幕上“再来一次”的位置。杜邦线的另一头插进橙子(触发电容屏需要在屏幕上形成一个电场,我尝试过连接干电池负极的方案,但是效果不理想,最后不得已拿了室友的一个橙子。当然一直捏着或者含着导线也是可以的)。
5.舵机连接上树莓派,电源使用5v,舵机控制线接在GPIO18, 如图
6.需要根据实际安装位置调整舵机高点和低点位置servo_down = 3.8 servo_up = 5(范围: 2.5~12.5)
7.最终效果
Windows 部分
下载Airplayer(免安装,暂无捆绑)
配置Airplayer,画质什么的统统调到最高。启动iPhone上的Airplay,然后可以在电脑上到iPhone画面,游戏运行时需要Airplayer全屏显示。
安装Pillow库 本文使用Pillow库的ImageGrab截屏
im = ImageGrab.grab((654, 0, 1264, 1080)) im.save('a.png', 'png')
其中(654, 0, 1264, 1080)是截屏的范围,我的显示器分辨率是1080p,截取屏幕中间的部分得到的图片大小是610*1080,但这个时候图片最左边的一列的像素是黑色的。
4.下载wechat_jump_auto_iOS_Win.py,我的显示器分辨率是1920*1080,手机是iPhone 7。如果使用不同的设备需要更改时间系数等参数。
5.由于Airplay传输画面时会压缩,获取的游戏画面会有颜色偏差。我修改了原算法的一些参数,增大了一些颜色上的宽容度,在我的测试中达到一个比较好的准确率。
运行
打开游戏画面,Airplayer窗口全屏
树莓派上运行servo_control.py
Windows运行wechat_jump_auto_iOS_Win.py
存在问题
由于是物理点击屏幕,会产生一定的操作误差。操作误差由时间常数误差、舵机运动时间、杜邦线触点插进海绵的深度等等因素引起。而当前使用的算法在一种情况下会出现误差叠加的问题。
舵机的摆动角度和时间系数没有绝对的数值,需要慢慢尝试,当前使用的时间系数是2.43。
python跳一跳编程构造_Python玩“跳一跳” iOS+Win 硬件实现相关推荐
- python跳一跳编程构造_Python + 新手 制作“跳一跳”辅助程序
刚开始学习Python,萌新总有一颗渴望做实践享受成就感的心,最近"跳一跳"比较火,在看了一些前辈的辅助程序教程后,我就也想写一个自己版本的辅助(for Android). 写辅助 ...
- python跳一跳编程构造_python实现微信跳一跳辅助工具步骤详解
说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...
- python黑帽编程视频_Python黑帽编程 3.4 跨越VLAN详解
VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理网络障碍,将不同子网中的用户划到同一个VLA ...
- python如何进入编程界面_Python可视化界面编程入门
Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...
- 跳一跳python源码下载_Python玩跳一跳【简】
准备环境: Windows 10: [有] 安卓手机 [有] python(版本建议3以上) adb驱动 依赖安装包 Python下载安装[官网下载并安装] 详情参见 pip安装 pip用于安装依赖包 ...
- python语言程序设计编程题_Python语言程序设计(测试练习题)
选择题 1. r var in ___: print(var) 哪个选项不符合上述程序空白处的语法要求? ...
- python面相对象编程指南_Python面向对象编程指南
抽象是隐藏多余细节的艺术.在面向对象的概念中,抽象的直接表现形式通常为类.虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言.Python基本上提供了面向对象编程语 ...
- python中面向对象编程简称为_Python基础-面向对象编程
本文完全转载自廖雪峰大神的教程: 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...
- python图形界面编程库_Python支持哪些图形界面的第三方库
Python支持哪些图形界面的第三方库 发布时间:2020-11-09 10:37:56 来源:亿速云 阅读:58 作者:小新 这篇文章给大家分享的是有关Python支持哪些图形界面的第三方库的内容. ...
- python字符串处理编程实例_Python字符串处理实例详解
干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...
最新文章
- Android .mk文件语法解析
- pg插入执行成功但是没有数据_pg_lightool基于basebackup的单表恢复和块恢复
- android mk subst功能,Android.mk(零)
- 分享一下海康威视古老的播放器源码
- mysql手册12_锁机制
- 面试题:用两个栈实现一个队列 Java语言实现
- 10g新特性之multi-block reads自动调优
- API文档,已取消到该网页的导航
- 如何以活动价在官网购买百度网盘会员
- vscode error: You have not concluded your merge
- 中国三大主流开源Linux操作系统社区及其产品生态
- Python wheel文件
- scrapinghub 爬取amztracker页面信息
- 路由环路的产生及解决
- 洛谷 P1135 奇怪的电梯
- 计算机面试、笔试常考题
- 智慧景区电子票务系统人脸识别售检票基本思路
- Lectra.Pro.Style.v5r3c1 1CD
- STM32Cube的PWM控制基础篇(一)一路PWM设置
- ZVB网分仪远程控制