微信跳一跳辅助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 相关文章推荐
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
对Python闭包与延迟绑定的方法详解
Jan 07 Python
python爬虫之快速对js内容进行破解
Jul 09 Python
python3的数据类型及数据类型转换实例详解
Aug 20 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
python将dict中的unicode打印成中文实例
May 11 Python
Python中Yield的基本用法
Oct 18 Python
基于Python实现全自动下载抖音视频
Nov 06 Python
Python关于拓扑排序知识点讲解
Jan 04 Python
python读取pdf格式文档的实现代码
Apr 01 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生成网页快照 不用COM不用扩展.
2010/02/11 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
jquery图片放大功能简单实现
2013/08/01 Javascript
jquery 延迟执行实例介绍
2013/08/20 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
jQuery filter函数使用方法
2014/05/19 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
Javascript中拼接大量字符串的方法
2015/02/05 Javascript
完善的jquery处理机制
2016/02/21 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
javascript 使用正则test( )第一次是 true,第二次是false
2017/02/22 Javascript
JavaScript实现单例模式实例分享
2017/12/22 Javascript
手写简单的jQuery雪花飘落效果实例
2018/04/22 jQuery
vue单页缓存方案分析及实现
2018/09/25 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
vue 实现 rem 布局或vw 布局的方法
2019/11/13 Javascript
jQuery+Ajax+js实现请求json格式数据并渲染到html页面操作示例
2020/06/02 jQuery
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
python实现监控linux性能及进程消耗性能的方法
2014/07/25 Python
详细解析Python当中的数据类型和变量
2015/04/25 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
2018/10/11 Python
Windows下安装Scrapy
2018/10/17 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
解决Python设置函数调用超时,进程卡住的问题
2019/08/08 Python
用python画一只可爱的皮卡丘实例
2019/11/21 Python
Python小程序之在图片上加入数字的代码
2019/11/26 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
美国旅游网站:Tours4Fun
2017/02/17 全球购物
银行实习鉴定
2013/12/13 职场文书
金融与证券专业求职信
2014/06/22 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
大班下学期幼儿评语
2014/12/30 职场文书
表扬稿格式范文
2015/01/16 职场文书
2015年度个人业务工作总结
2015/04/27 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
会议开幕致辞怎么写
2016/03/03 职场文书