微信跳一跳辅助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实现博客文章爬虫示例
Feb 26 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
Python中字典的浅拷贝与深拷贝用法实例分析
Jan 02 Python
django限制匿名用户访问及重定向的方法实例
Feb 07 Python
详解python的sorted函数对字典按key排序和按value排序
Aug 10 Python
pandas使用apply多列生成一列数据的实例
Nov 28 Python
python获取txt文件词向量过程详解
Jul 05 Python
Python使用enumerate获取迭代元素下标
Feb 03 Python
Python同时处理多个异常的方法
Jul 28 Python
用pip给python安装matplotlib库的详细教程
Feb 24 Python
python 闭包函数详细介绍
Apr 19 Python
Python+DeOldify实现老照片上色功能
Jun 21 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
浅析is_writable的php实现
2013/06/18 PHP
Chrome Web App开发小结
2014/09/04 PHP
php实现Session存储到Redis
2015/11/11 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
PHP函数引用返回的实例详解
2016/09/11 PHP
PHP 模拟登陆功能实例详解
2019/09/10 PHP
PHP网页缓存技术优点及代码实例
2020/07/29 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
js实现拉伸拖动iframe的具体代码
2013/08/03 Javascript
js日期联动示例
2014/05/02 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
AngularJS国际化详解及示例代码
2016/08/18 Javascript
jQuery实现右键菜单、遮罩等效果代码
2016/09/27 Javascript
js改变html的原有内容实现方法
2016/10/05 Javascript
基于vue实现swipe分页组件实例
2017/05/25 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
jQuery zTree 异步加载添加子节点重复问题
2017/11/29 jQuery
浅谈Vue SPA 首屏加载优化实践
2017/12/15 Javascript
vue2中引用及使用 better-scroll的方法详解
2018/11/15 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
[02:40]DOTA2英雄基础教程 先知
2013/11/29 DOTA
[07:09]DOTA2-DPC中国联赛 正赛 Ehome vs Elephant 选手采访
2021/03/11 DOTA
介绍Python中的fabs()方法的使用
2015/05/14 Python
Python对多属性的重复数据去重实例
2018/04/18 Python
python读取各种文件数据方法解析
2018/12/29 Python
使用Python进行防病毒免杀解析
2019/12/13 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
美国顶尖折扣时尚购物网:Bluefly
2016/08/28 全球购物
华为消费者德国官方网站:HUAWEI德国
2020/11/03 全球购物
思想政治自我鉴定
2013/10/06 职场文书
检讨书格式
2015/01/23 职场文书
MySQL 重命名表的操作方法及注意事项
2021/05/21 MySQL