微信跳一跳python怎么刷分_微信跳一跳python使用教程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信跳一跳python怎么刷分_微信跳一跳python使用教程相关的知识,希望对你有一定的参考价值。

参考技术A

   微信跳一跳python怎么刷分 ?要知道,游戏中这个Python脚本程序可以刷很高的分数,所以接下来我要为大家介绍下python使用教程!

   微信跳一跳python使用教程

  工具介绍

  Python 2.7

  android 手机

  Adb 驱动

  Python Matplot绘图

  原理说明

  将手机点击到《跳一跳》小程序界面;

  用Adb 工具获取当前手机截图,并用adb将截图pull上来

  adb shell screencap -p /sdcard/1.png

  adb pull /sdcard/1.png .

  用matplot显示截图(已经图像识别处理)

  用鼠标点击起始点和目标位置,计算像素距离 (已经图像识别处理)

  根据像素距离,计算按压时间;

  用Adb工具点击屏幕蓄力一跳;

  adb shell input swipe x y x y time

  如果你是 ios

  运行安装好的 WebDriverAgentRunner

  将手机点击到《跳一跳》小程序界面

  python3 wechat_jump_iOS_py3.py

  依次点击起始位置和目标位置,实现蓄力一跳

  打开 python3 wechat_jump_iOS_py3.py,根据蓄力一跳的精准情况更改其中的time_coefficient,直到获得最佳取值

  步骤

  安卓手机打开USB调试,设置》开发者选项》USB调试

  电脑与手机USB线连接,确保执行adb devices可以找到设备id

  界面转至微信跳一跳游戏,点击开始游戏

  运行python wechat_junp_auto.py,如果手机界面显示USB授权,请点击确认

  我的屏幕是1920*1080,距离系数为1.35,如果是别的分辨率,暂时需要修改一下代码中的距离系数.

  以上就是我带来的 微信跳一跳python怎么刷分 相关介绍,希望能帮助大家,更多精彩游戏攻略介绍,敬请关注
手游网哦!

  相关推荐

   微信跳一跳怎么跳1000分_跳1000分技巧

   微信跳一跳开挂高分怎么刷_微信跳一跳开挂方法

  苹果手机微信跳一跳怎么刷分_刷高分攻略

>>【
游戏APP】:
当下好玩热门手游下载、海量送满级VIP无限元宝的公益服手游等你来!

第一时间获取【微信跳一跳】最新游戏资讯、活动福利信息,点击加入福利群:

微信跳一跳辅助

微信跳一跳辅助

import math

 import os

 import tempfile

 import time

 from functoole import reduce

 from PIL import Image

 

 BACKGROUND_POS = {40,500}

 DISTANCE_TO_TIME_RATIO =1.35

 SCREENSHOT_PATH = tempfile.gettempdir()+"/screenshot.png"

 

 def calculate_jump_distance():

     im =Image.open(SCREENSHOT_PATE)

     baxkround_rgb = im.getpixel(BACKGROUND_POS)

 

      role_pos_list = None

    vertex1_pos = None

    block_background_rgb = None

    vertex2_pos = None

    role_line_flag = True

    for y in range(BACKGROUND_POS[1], im.height):

        if role_pos_list and role_line_flag:

            break

        role_line_flag = True

        vertex2_line_flag = True

        for x in range(BACKGROUND_POS[0], im.width):

            current_rgb = im.getpixel((x, y))

            next_rgb = im.getpixel((x + 1, y)) if x + 1 < im.width else (0, 0, 0)

            # 识别顶点1

            if x > BACKGROUND_POS[0] and y > BACKGROUND_POS[1] and not vertex1_pos

                    and not is_similar(background_rgb, current_rgb) and is_similar(current_rgb, next_rgb):

                vertex1_pos = (x, y)

                block_background_rgb = current_rgb

            # 识别顶点2

            if block_background_rgb and vertex2_line_flag and is_similar(current_rgb, block_background_rgb, 5):

                vertex2_line_flag = False

                if vertex2_pos:

                    if x < vertex2_pos[0] and vertex2_pos[0] - x < 20 and y - vertex2_pos[1] < 20:

                        vertex2_pos = (x, y)

                else:

                    vertex2_pos = (x, y)

            # 识别小人

            if is_part_of_role(current_rgb):

                if role_line_flag:

                    role_pos_list = []

                    role_line_flag = False

                role_pos_list.append((x, y))

    if len(role_pos_list) == 0:

        raise Exception(‘无法识别小人位置!!!‘)

    pos_sum = reduce((lambda o1, o2: (o1[0] + o2[0], o1[1] + o2[1])), role_pos_list)

    role_pos = (int(pos_sum[0] / len(role_pos_list)), int(pos_sum[1] / len(role_pos_list)))

    destination_pos = (vertex1_pos[0], vertex2_pos[1])

    return int(linear_distance(role_pos, destination_pos))

def is_part_of_role(rgb):

    return 53 < rgb[0] < 59 and 57 < rgb[1] < 61 and 95 < rgb[2] < 103

def linear_distance(xy1, xy2):

    return math.sqrt(pow(xy1[0] - xy2[0], 2) + pow(xy1[1] - xy2[1], 2))

def is_similar(rgb1, rgb2, degree=10):

    return abs(rgb1[0] - rgb2[0]) <= degree and abs(rgb1[1] - rgb2[1]) <= degree and abs(rgb1[2] - rgb2[2]) <= degree

def screenshot():

    os.system("adb shell screencap -p /mnt/sdcard/screencap.png")

    os.system("adb pull /mnt/sdcard/screencap.png {} >> {}/jump.out".format(SCREENSHOT_PATH, tempfile.gettempdir()))

def jump(touch_time):

    os.system("adb shell input swipe 0 0 0 0 {}".format(touch_time))

def distance2time(distance):

    return int(distance * DISTANCE_TO_TIME_RATIO)

if __name__ == ‘__main__‘:

    count = 1

    while True:

        screenshot()

        distance = calculate_jump_distance()

        touch_time = distance2time(distance)

        jump(touch_time)

        print("#{}: distance={}, time={}".format(count, distance, touch_time))

        count += 1

        time.sleep(1)

喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!

 

祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!

以上是关于微信跳一跳python怎么刷分_微信跳一跳python使用教程的主要内容,如果未能解决你的问题,请参考以下文章

Python操作微信跳一跳

微信跳一跳 python 自动模拟

python 微信跳一跳和源码解读

微信跳一跳python程序

python - 微信跳一跳

用python玩微信跳一跳(win10+安卓)