微信跳一跳辅助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 相关文章推荐
Windows下安装python2.7及科学计算套装
Mar 05 Python
Python黑帽编程 3.4 跨越VLAN详解
Sep 28 Python
Python在groupby分组后提取指定位置记录方法
Apr 20 Python
Python实现的堆排序算法示例
Apr 29 Python
Python快速查找list中相同部分的方法
Jun 27 Python
python实现淘宝秒杀脚本
Jun 23 Python
python3编写ThinkPHP命令执行Getshell的方法
Feb 26 Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
Python统计学一数据的概括性度量详解
Mar 03 Python
python实现微信打飞机游戏
Mar 24 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
May 28 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之对抗Web扫描器的脚本技巧
2008/10/01 PHP
深入解读php中关于抽象(abstract)类和抽象方法的问题分析
2014/01/03 PHP
通过php添加xml文档内容的方法
2015/01/23 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
PHP中的session安全吗?
2016/01/22 PHP
Yii数据读取与跳转参数传递用法实例分析
2016/07/12 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
PHP实现的XML操作类【XML Library】
2016/12/29 PHP
php时间戳转换代码详解
2019/08/04 PHP
CL vs ForZe BO5 第五场 2.13
2021/03/10 DOTA
用js+xml自动生成表格的东西
2006/12/21 Javascript
JQuery判断子iframe何时加载完成解决方案
2013/08/20 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
浅谈vuejs实现数据驱动视图原理
2018/02/23 Javascript
js实现文件上传功能 后台使用MultipartFile
2018/09/08 Javascript
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
win10系统中安装scrapy-1.1
2016/07/03 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
浅析python的Lambda表达式
2019/02/27 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
python访问hdfs的操作
2020/06/06 Python
Python读取图像并显示灰度图的实现
2020/12/01 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
CSS3教程:background-clip和background-origin
2008/10/17 HTML / CSS
2014年大学生党课心得体会范文
2014/03/29 职场文书
四年级学生评语大全
2014/04/21 职场文书
英语分层教学实施方案
2014/06/15 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
股指期货心得体会
2014/09/13 职场文书
2015年个人实习工作总结
2014/12/12 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
nginx对http请求处理的各个阶段详析
2021/03/31 Servers
Mysql数据库表中为什么有索引却没有提高查询速度
2022/02/24 MySQL