微信跳一跳辅助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 26 Python
零基础写python爬虫之爬虫的定义及URL构成
Nov 04 Python
基于Python的接口测试框架实例
Nov 04 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
Python使用指定端口进行http请求的例子
Jul 25 Python
Python turtle画图库&&画姓名实例
Jan 19 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
Python基于QQ邮箱实现SSL发送
Apr 26 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Python while true实现爬虫定时任务
Jun 08 Python
selenium+超级鹰实现模拟登录12306
Jan 24 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/02/05 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
利用“多说”制作留言板、评论系统
2015/07/14 PHP
php使用PDO下exec()函数查询执行后受影响行数的方法
2017/03/28 PHP
PHP终止脚本运行三种实现方法详解
2020/09/01 PHP
javascript引用对象的方法
2007/01/11 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
css结合js制作下拉菜单示例代码
2014/02/27 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
javascript排序函数实现数字排序
2015/06/26 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
BootStrap中
2016/12/10 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
JavaScript函数节流的两种写法
2017/04/07 Javascript
微信小程序开发之好友列表字母列表跳转对应位置
2017/09/26 Javascript
nodejs基于express实现文件上传的方法
2018/03/19 NodeJs
用ES6的class模仿Vue写一个双向绑定的示例代码
2018/04/20 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
简述Python中的面向对象编程的概念
2015/04/27 Python
python如何在终端里面显示一张图片
2016/08/17 Python
PyQt5每天必学之日历控件QCalendarWidget
2018/04/19 Python
python3.6使用pickle序列化class的方法
2018/10/22 Python
一步步教你用python的scrapy编写一个爬虫
2019/04/17 Python
使用python实现简单五子棋游戏
2019/06/18 Python
TensorFlow 读取CSV数据的实例
2020/02/05 Python
python 读txt文件,按‘,’分割每行数据操作
2020/07/05 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
沙特阿拉伯网上购物:Sayidaty Mall
2018/05/06 全球购物
女大学生毕业找工作的自我评价
2013/10/03 职场文书
毕业生多媒体设计求职信
2013/10/12 职场文书
李开复演讲稿
2014/05/24 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
Java tomcat手动配置servlet详解
2021/11/27 Java/Android