微信跳一跳辅助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 greenlet实现原理和使用示例
Sep 24 Python
python实现红包裂变算法
Feb 16 Python
python实现简单加密解密机制
Mar 19 Python
python定时复制远程文件夹中所有文件
Apr 30 Python
浅析python redis的连接及相关操作
Nov 07 Python
python hash每次调用结果不同的原因
Nov 21 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
python实现逢七拍腿小游戏的思路详解
May 26 Python
哪些是python中web开发框架
Jun 17 Python
python根据用户需求输入想爬取的内容及页数爬取图片方法详解
Aug 03 Python
Pythonic版二分查找实现过程原理解析
Aug 11 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
php下实现农历日历的代码
2007/03/07 PHP
php中的实现trim函数代码
2007/03/19 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
CSS JavaScript 实现菜单功能 改进版
2008/12/09 Javascript
JavaScript中的面向对象介绍
2012/06/30 Javascript
AMD异步模块定义介绍和Require.js中使用jQuery及jQuery插件的方法
2014/06/06 Javascript
使用window.prompt()实现弹出用户输入的对话框
2015/04/13 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
vue.js中指令Directives详解
2017/03/20 Javascript
javascript实现二叉树遍历的代码
2017/06/08 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
Python中一些自然语言工具的使用的入门教程
2015/04/13 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
python re.match()用法相关示例
2021/01/27 Python
python实现银行账户系统
2021/02/22 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
电气自动化专业职业规划范文
2014/02/16 职场文书
大家访活动实施方案
2014/03/10 职场文书
党风廉政建设责任书
2014/04/14 职场文书
实验室的标语
2014/06/20 职场文书
会议欢迎词
2015/01/23 职场文书
会计简历自我评价
2015/03/10 职场文书
2015年前台接待工作总结
2015/05/04 职场文书
运动会开幕式致辞
2015/07/29 职场文书
2019终止劳动合同协议书最新范本!
2019/07/09 职场文书
解决Jupyter-notebook不弹出默认浏览器的问题
2021/03/30 Python
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫