微信跳一跳辅助python代码实现


Posted in Python onJanuary 05, 2018

微信跳一跳辅助的python具体实现代码,供大家参考,具体内容如下

这是一个 2.5D 插画风格的益智游戏,玩家可以通过按压屏幕时间的长短来控制这个「小人」跳跃的距离。可能刚开始上手的时候,因为时间距离之间的关系把握不恰当,只能跳出几个就掉到了台子下面。
玩法类似于《flappy bird》

下载github的一个程序,但是在windows10下不能运行,原因是windows10下没有copy命令了,修改为Python自带的复制方法,即可完成。今天运行好像一开始不能正确跳第一次,人工辅助后,后续的跳的很好。

部分代码:

wechat_jump_iOS_py3.py

import wda
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from PIL import Image
import math
import time
import os

# 截图距离 * time_coefficient = 按键时长
# 此数据是 iPhoneX 的推荐系数,可根据手机型号进行调整
time_coefficient = 0.00125

c = wda.Client()
s = c.session()

def pull_screenshot():
 c.screenshot('1.png')

def jump(distance):
 press_time = distance * time_coefficient
 press_time = press_time
 print(press_time)
 s.tap_hold(200,200,press_time)

fig = plt.figure()
index = 0
cor = [0, 0]
pull_screenshot()
img = np.array(Image.open('1.png'))

update = True
click_count = 0
cor = []

def update_data():
 return np.array(Image.open('1.png'))

im = plt.imshow(img, animated=True)

def updatefig(*args):
 global update
 if update:
 time.sleep(1)
 pull_screenshot()
 im.set_array(update_data())
 update = False
 return im,

def onClick(event):
 global update
 global ix, iy
 global click_count
 global cor

 # next screenshot
 ix, iy = event.xdata, event.ydata
 coords = []
 coords.append((ix, iy))
 print('now = ', coords)
 cor.append(coords)


 click_count += 1
 if click_count > 1:
 click_count = 0

 cor1 = cor.pop()
 cor2 = cor.pop()

 distance = (cor1[0][0] - cor2[0][0])**2 + (cor1[0][1] - cor2[0][1])**2
 distance = distance ** 0.5
 print('distance = ', distance)
 jump(distance)
 update = True

fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
plt.show()

wechat_jump_py3.py

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from PIL import Image
import math
import time
import os

def pull_screenshot():
 os.system('adb shell screencap -p /sdcard/1.png')
 os.system('adb pull /sdcard/1.png .')

def jump(distance):
 press_time = distance * 1.35
 press_time = int(press_time)
 cmd = 'adb shell input swipe 320 410 320 410 ' + str(press_time)
 print(cmd)
 os.system(cmd)

fig = plt.figure()
index = 0
cor = [0, 0]

pull_screenshot()
img = np.array(Image.open('1.png'))

update = True 
click_count = 0
cor = []

def update_data():
 return np.array(Image.open('1.png'))

im = plt.imshow(img, animated=True)


def updatefig(*args):
 global update
 if update:
 time.sleep(1.5)
 pull_screenshot()
 im.set_array(update_data())
 update = False
 return im,

def onClick(event): 
 global update 
 global ix, iy
 global click_count
 global cor

 # next screenshot
 
 ix, iy = event.xdata, event.ydata
 coords = []
 coords.append((ix, iy))
 print('now = ', coords)
 cor.append(coords)
 

 click_count += 1
 if click_count > 1:
 click_count = 0
 
 cor1 = cor.pop()
 cor2 = cor.pop()

 distance = (cor1[0][0] - cor2[0][0])**2 + (cor1[0][1] - cor2[0][1])**2 
 distance = distance ** 0.5
 print('distance = ', distance)
 jump(distance)
 update = True
 


fig.canvas.mpl_connect('button_press_event', onClick)
ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)
plt.show()

原理说明

1. 将手机点击到《跳一跳》小程序界面;
2. 用Adb 工具获取当前手机截图,并用adb将截图pull上来

```shell
    adb shell screencap -p /sdcard/1.png
    adb pull /sdcard/1.png .
```

3. 用matplot显示截图;
4. 用鼠标点击起始点和目标位置,计算像素距离;
5. 根据像素距离,计算按压时间;
6. 用Adb工具点击屏幕蓄力一跳;

代码较多,直接为大家分享源码下载链接,很详细:微信跳一跳辅助python代码实现

更多内容大家可以参考专题《微信跳一跳》进行学习。

相关文章学习推荐:

跳一跳小游戏python脚本

python基于TensorFlow实现微信跳一跳的AI

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现批量监控网站
Sep 09 Python
python实现稀疏矩阵示例代码
Jun 09 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
python构建深度神经网络(续)
Mar 10 Python
Python 比较文本相似性的方法(difflib,Levenshtein)
Oct 15 Python
Django网络框架之HelloDjango项目创建教程
Jun 06 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
OpenCV模板匹配matchTemplate的实现
Oct 18 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
关于Keras Dense层整理
May 21 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
Pytorch distributed 多卡并行载入模型操作
Jun 05 Python
使用python为mysql实现restful接口
Jan 05 #Python
微信跳一跳python代码实现
Jan 05 #Python
python+opencv轮廓检测代码解析
Jan 05 #Python
python selenium UI自动化解决验证码的4种方法
Jan 05 #Python
轻松实现TensorFlow微信跳一跳的AI
Jan 05 #Python
OpenCV-Python实现轮廓检测实例分析
Jan 05 #Python
django2 快速安装指南分享
Jan 05 #Python
You might like
在普通HTTP上安全地传输密码
2007/07/21 PHP
html静态页面调用php文件的方法
2014/11/13 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
PHP使用ActiveMQ实现消息队列的方法详解
2019/05/31 PHP
PHP解决高并发的优化方案实例
2020/12/10 PHP
div模拟滚动条效果示例代码
2013/10/16 Javascript
jquery插件之定时查询待处理任务数量
2014/05/01 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
Nodejs回调加超时限制两种实现方法
2017/06/09 NodeJs
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
详解Vue.js中.native修饰符
2018/04/24 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
vue+ElementUI 关闭对话框清空验证,清除form表单的操作
2020/08/06 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
在Windows8上的搭建Python和Django环境
2014/07/03 Python
Python中模块string.py详解
2017/03/12 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
2018/04/05 Python
Python OpenCV利用笔记本摄像头实现人脸检测
2020/08/20 Python
django 做 migrate 时 表已存在的处理方法
2019/08/31 Python
Python通过Tesseract库实现文字识别
2020/03/05 Python
DjangoWeb使用Datatable进行后端分页的实现
2020/05/18 Python
爬虫代理的cookie如何生成运行
2020/09/22 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
HTML5拖放API实现自动生成相框功能
2020/04/07 HTML / CSS
英国独特礼物想法和个性化礼物网站:notonthehighstreet.com
2018/04/16 全球购物
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
三十年同学聚会致辞
2015/07/28 职场文书
门面租赁合同范文
2019/08/06 职场文书
56句经典英文座右铭
2019/08/09 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
Redis读写分离搭建的完整步骤
2021/09/14 Redis
一级电子管军用接收机测评
2022/04/05 无线电
vue使用localStorage持久性存储实现评论列表
2022/04/14 Vue.js
win10识别不了U盘怎么办 win10系统读取U盘失败的解决办法
2022/08/05 数码科技