微信跳一跳辅助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编写批量卸载手机中安装的android应用脚本
Jul 21 Python
在ironpython中利用装饰器执行SQL操作的例子
May 02 Python
python实现中文输出的两种方法
May 09 Python
python如何将图片转换为字符图片
Aug 19 Python
python实现求特征选择的信息增益
Dec 18 Python
浅谈Python大神都是这样处理XML文件的
May 31 Python
python 实现list或string按指定分段
Dec 25 Python
Python爬虫解析网页的4种方式实例及原理解析
Dec 30 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
Mar 17 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
pyecharts在数据可视化中的应用详解
Jun 08 Python
pytorch中index_select()的用法详解
Jan 06 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实现 上一篇、下一篇的代码
2012/09/29 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
一段实时更新的时间代码
2006/07/07 Javascript
jQuery autocomplete插件修改
2009/04/17 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
js删除所有的cookie的代码
2010/11/25 Javascript
精通Javascript系列之数据类型 字符串
2011/06/08 Javascript
UI Events 用户界面事件
2012/06/27 Javascript
script标签属性type与language使用选择
2012/12/02 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
AngularJS基础 ng-model-options 指令简单示例
2016/08/02 Javascript
Vuex简单入门
2017/04/19 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
js实现录音上传功能
2019/11/22 Javascript
使用python 获取进程pid号的方法
2014/03/10 Python
python中的五种异常处理机制介绍
2014/09/02 Python
使用PDB模式调试Python程序介绍
2015/04/05 Python
python dataframe 输出结果整行显示的方法
2018/06/14 Python
Python 对输入的数字进行排序的方法
2018/06/23 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
对Python中创建进程的两种方式以及进程池详解
2019/01/14 Python
python time()的实例用法
2020/11/03 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
HTML最新标准HTML5总结(必看)
2016/06/13 HTML / CSS
美国最大的旗帜经销商:Carrot-Top
2018/02/26 全球购物
美国五金商店:Ace Hardware
2018/03/27 全球购物
心理咨询专业自荐信
2014/07/07 职场文书
党员争先创优承诺书
2015/01/20 职场文书
六一领导慰问欢迎词
2015/01/26 职场文书
公务员个人总结
2015/02/12 职场文书
浅谈Python从全局与局部变量到装饰器的相关知识
2021/06/21 Python
能让Python提速超40倍的神器Cython详解
2021/06/24 Python
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
java后台调用接口及处理跨域问题的解决
2022/03/24 Java/Android
Python开发简易五子棋小游戏
2022/05/02 Python