感谢来自 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 硬件实现相关推荐

  1. python跳一跳编程构造_Python + 新手 制作“跳一跳”辅助程序

    刚开始学习Python,萌新总有一颗渴望做实践享受成就感的心,最近"跳一跳"比较火,在看了一些前辈的辅助程序教程后,我就也想写一个自己版本的辅助(for Android). 写辅助 ...

  2. python跳一跳编程构造_python实现微信跳一跳辅助工具步骤详解

    说明 1.windows上安装安卓模拟器,安卓版本5.1以上 2.模拟器里下载安装最新的微信6.6.1 3.最好使用python2.7,python3的pyhook包有bug,解决比较麻烦 步骤 1. ...

  3. python黑帽编程视频_Python黑帽编程 3.4 跨越VLAN详解

    VLAN(Virtual Local Area Network),是基于以太网交互技术构建的虚拟网络,既可以将同一物理网络划分成多个VALN,也可以跨越物理网络障碍,将不同子网中的用户划到同一个VLA ...

  4. python如何进入编程界面_Python可视化界面编程入门

    Python可视化界面编程入门具体实现代码如所示: (1)普通可视化界面编程代码入门: import sys from PyQt5.QtWidgets import QWidget,QApplicat ...

  5. 跳一跳python源码下载_Python玩跳一跳【简】

    准备环境: Windows 10: [有] 安卓手机 [有] python(版本建议3以上) adb驱动 依赖安装包 Python下载安装[官网下载并安装] 详情参见 pip安装 pip用于安装依赖包 ...

  6. python语言程序设计编程题_Python语言程序设计(测试练习题)

    选择题 1. r var in ___: print(var) 哪个选项不符合上述程序空白处的语法要求?‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬ ...

  7. python面相对象编程指南_Python面向对象编程指南

    抽象是隐藏多余细节的艺术.在面向对象的概念中,抽象的直接表现形式通常为类.虽然Python是解释性语言,但是它是面向对象的,从设计之初就已经是一门面向对象的语言.Python基本上提供了面向对象编程语 ...

  8. python中面向对象编程简称为_Python基础-面向对象编程

    本文完全转载自廖雪峰大神的教程: 面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的 ...

  9. python图形界面编程库_Python支持哪些图形界面的第三方库

    Python支持哪些图形界面的第三方库 发布时间:2020-11-09 10:37:56 来源:亿速云 阅读:58 作者:小新 这篇文章给大家分享的是有关Python支持哪些图形界面的第三方库的内容. ...

  10. python字符串处理编程实例_Python字符串处理实例详解

    干货大礼包!21天带你轻松学Python(文末领取更多福利) 点击查看课程视频地址 本课程来自于千锋教育在阿里云开发者社区学习中心上线课程<Python入门2020最新大课>,主讲人姜伟. ...

最新文章

  1. Android .mk文件语法解析
  2. pg插入执行成功但是没有数据_pg_lightool基于basebackup的单表恢复和块恢复
  3. android mk subst功能,Android.mk(零)
  4. 分享一下海康威视古老的播放器源码
  5. mysql手册12_锁机制
  6. 面试题:用两个栈实现一个队列 Java语言实现
  7. 10g新特性之multi-block reads自动调优
  8. API文档,已取消到该网页的导航
  9. 如何以活动价在官网购买百度网盘会员
  10. vscode error: You have not concluded your merge
  11. 中国三大主流开源Linux操作系统社区及其产品生态
  12. Python wheel文件
  13. scrapinghub 爬取amztracker页面信息
  14. 路由环路的产生及解决
  15. 洛谷 P1135 奇怪的电梯
  16. 计算机面试、笔试常考题
  17. 智慧景区电子票务系统人脸识别售检票基本思路
  18. Lectra.Pro.Style.v5r3c1 1CD
  19. STM32Cube的PWM控制基础篇(一)一路PWM设置
  20. ZVB网分仪远程控制

热门文章

  1. 关于microsoft html help workshop的一些草蛋问题
  2. 城市内涝监测预警系统
  3. bin是什么文件,要如何打开?
  4. 亿阳信通面试 亿阳信通笔试 面经大全
  5. 爬豆瓣读书Top250
  6. python推荐书豆瓣_基于Python的豆瓣图书评论数据获取与可视化分析
  7. 【JavaWeb】最详细的小白笔记!!!
  8. pdf批量盖章软件_我的PDF休要乱用 超实用的PDF批量加水印神器 它来了
  9. Angular学习总结-入门篇
  10. c语言元音字母辅音字母,英语字母中的5个元音字母和21个辅音字母