python跳一跳脚本详解_微信跳一跳游戏 python脚本辅助得高分

本文介绍了如何使用Python脚本配合ADB工具实现自动玩微信小程序‘跳一跳’。通过ADB连接手机截图,利用Pillow计算两点间距离,根据距离控制跳跃时间,实现自动起跳。脚本涉及numpy、Pillow等模块,同时提供了环境配置和运行步骤,是自动化工具的一个有趣应用。
摘要由CSDN通过智能技术生成

微信小程序一时间火爆朋友圈,关键是还有排行榜!游戏操作简单,可直接根据电脑识别,用python写出自动跳辅助脚本,本想动手写下,索性网上有大神写了现成脚本,修改了一小部分参数,就可以稳定使用了霸榜没有任何压力,大致看了一下,用到了numpy os pillow等模块和adb工具,原理其实很简单,大致就是用adb工具连接手机并截图上传到电脑,用pillow测算两点间的距离,并用adb根据距离来确定按压起跳的时间来达到完美的起跳距离,这边分享使用该脚本,下载可以点击这里,具体作者也有大致的使用方法介绍

ed212d3b7b25

脚本文件详解

一、需要配置的环境

1.python环境(用python运行脚本)

根据自己的电脑系统,可在这里下载

最好选择高版本的,如3.4以上的版本,然后配置环境

在cmd下运行python,如下表示安装python环境成功

ed212d3b7b25

python3.6

2.pip包

可直接用命令python easy_install pip安装pip包,或者百度下载手动放置在python文件下,不过多赘述

3.安装python模块numpy pillow等

可直接在脚本目录下打开cmd,用pip包安装模块

pip install -r requirements.txt

以下为requirements.txt,里面模块版本可根据python版本进行手动更改并安装

backports.functools-lru-cache==1.4

cycler==0.10.0

matplotlib==2.1.1

numpy==1.13.3

olefile==0.44

opencv-python==3.4.0.12

Pillow==4.3.0

pyparsing==2.2.0

python-dateutil==2.6.1

pytz==2017.3

six==1.11.0

4.adb工具配置

切换至项目的 /Tools/adb 目录,双击adb.exe并可运行,然后加入至系统环境,与python环境配置类似

5、安卓模拟器(为了方便我直接下了个安卓模拟器,当然你也可以用真实手机连接电脑)推荐雷电模拟器,自行百度下载

并下载微信打开跳一跳游戏,将模拟器分辨率调至1080p

二、运行操作

1.模拟器中打开游戏,cmd中cd到项目目录,用python运行脚本

python wechat_jump_py3.py

脚本设定了一定的等待时间和尝试机会,以防被系统查水表,启动脚本后,可以不用动手了,达到一定分数 ctrl+c停止即可,切勿刷太高哦!

主程序代码如下:

# -*- coding: utf-8 -*-

import os

import time

import numpy as np

import matplotlib.pyplot as plt

import matplotlib.animation as animation

from PIL import Image

def pull_screenshot():

os.system('adb shell screencap -p /sdcard/autojump.png')

os.system('adb pull /sdcard/autojump.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()

pull_screenshot()

img = np.array(Image.open('autojump.png'))

im = plt.imshow(img, animated=True)

update = True

click_count = 0

cor = []

def update_data():

return np.array(Image.open('autojump.png'))

def updatefig(*args):

global update

if update:

time.sleep(1.5)

pull_screenshot()

im.set_array(update_data())

update = False

return im,

def on_click(event):

global update

global ix, iy

global click_count

global cor

ix, iy = event.xdata, event.ydata

coords = [(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', on_click)

ani = animation.FuncAnimation(fig, updatefig, interval=50, blit=True)

plt.show()

脚本简单,却让我遇上了安卓神器adb,很不错的小工具耶~,写此文做个纪念,深入研究adb,日后可派上大用场!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值