微信跳一跳辅助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实现的登录和操作开心网脚本分享
Jul 09 Python
python机器学习理论与实战(一)K近邻法
Jan 28 Python
Python安装图文教程 Pycharm安装教程
Mar 27 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
python3 enum模块的应用实例详解
Aug 12 Python
Python3如何在Windows和Linux上打包
Feb 25 Python
Django 5种类型Session使用方法解析
Apr 29 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
Jul 03 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 Python
Python hashlib模块的使用示例
Oct 09 Python
解决TensorFlow训练模型及保存数量限制的问题
Mar 03 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
如何使用PHP获取网络上文件
2006/10/09 PHP
用PHP发电子邮件
2006/10/09 PHP
php获取本地图片文件并生成xml文件输出具体思路
2013/04/27 PHP
PHP自毁程序(慎用)
2015/07/09 PHP
javascript权威指南 学习笔记之变量作用域分享
2011/09/28 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
实现隔行换色效果的两种方式【实用】
2016/11/27 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
2017/02/17 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
剖析Angular Component的源码示例
2018/03/23 Javascript
简谈创建React Component的几种方式
2019/06/15 Javascript
微信小程序实现类似微信点击语音播放效果
2020/03/30 Javascript
[38:41]2014 DOTA2国际邀请赛中国区预选赛 LGD VS CNB
2014/05/22 DOTA
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python的变量与赋值详细分析
2017/11/08 Python
对python中数据集划分函数StratifiedShuffleSplit的使用详解
2018/12/11 Python
python时间序列按频率生成日期的方法
2019/05/14 Python
python多线程http压力测试脚本
2019/06/25 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
2019/11/15 Python
Python drop方法删除列之inplace参数实例
2020/06/27 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
美国眼镜网站:LensCrafters
2020/01/19 全球购物
农村婚礼证婚词
2014/01/08 职场文书
户籍证明的格式
2014/01/13 职场文书
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
三年级数学教学反思
2014/01/31 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
2015年骨干教师工作总结
2015/05/26 职场文书
少年派的奇幻漂流观后感
2015/06/08 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
spring boot实现文件上传
2022/08/14 Java/Android