美文网首页
微信跳一跳游戏 python脚本辅助得高分

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

作者: 网络安全自修室 | 来源:发表于2018-01-13 21:38 被阅读0次

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

脚本文件详解

一、需要配置的环境

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

根据自己的电脑系统,可在这里下载
最好选择高版本的,如3.4以上的版本,然后配置环境
在cmd下运行python,如下表示安装python环境成功

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,日后可派上大用场!

相关文章

网友评论

      本文标题:微信跳一跳游戏 python脚本辅助得高分

      本文链接:https://www.haomeiwen.com/subject/fnkhoxtx.html