Android版微信跳一跳小游戏利用技术手段达到高分的操作方法

本文主要来讲个个好玩的东西,近来微信刚出的跳一跳微信小程序的游戏很火,看到很多人都达到了二三百分就各种刷朋友圈了。

甩手一个表情

最终我们达到的分数却是这样的:

羡慕吧

一定会有人拍手叫好,“黄金右手”!说真的,我已经不用右手好多年,而且我玩这个游戏压根就没用手,而是意念!哈哈,别喷我,开个玩笑而已,肯定是利用技术手段啦,什么技术?python喽~哈哈,不过不是我写的,我自己是做Android开发的,我对于python从来没有接触,只是恰好在蛋哥公众号看到关于这个游戏的文章,觉得有意思,就花了点时间试着搞了一下,没想到还跑成功了,收获也挺多的:smile:。本文针对mac系统+Android全面屏手机,如想了解其他系统或者手机的教程,可以到项目主页或者issue中探索一下。好了,下面给大家看看它的“庐山真面目”。

关于游戏脚本,作者已经开源在了github,地址在 https://github.com/wangshub/wechat_jump_game ,有兴趣的可以先去看看。

一般的,手机型号比较老(像Android4.3以下的),或者比较新(像vivox20,小米mix2等等刚出的全面屏手机),再或者比较稀有的(像TCL,联想,诺基亚等等),顺利的跑起脚本还是挺难的,多少都会有些问题,由于脚本是作者几个小时就写好的,已经很厉害了,适配的这些问题不可能全部都面面具到,毕竟Android机型千千万呀!希望大家多多体谅,作者精力也是有限,不可能及时回答每一个人的问题,大家毕竟也是搞技术的,有些问题应该都有能力解决的,例如issue,度娘等等。这里我简单说明以下自己用mac和vivox20如何跑起来的。

首先,我们到作者的源码地址看看原理和Android的使用步骤,如下:

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

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

adb shell screencap -p /sdcard/autojump.png
 adb pull /sdcard/autojump.png .

计算按压时间

手动版:用 Matplotlib 显示截图,用鼠标点击起始点和目标位置,计算像素距离;

自动版:靠棋子的颜色来识别棋子,靠底色和方块的色差来识别棋盘;

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

adb shell input swipe x y x y time(ms)

原来是利用adb来计算和模拟位置的,我们暂时不需要关心这个,再来看看Android手机使用步骤:

  • 安卓手机打开 USB 调试,设置》开发者选项》USB 调试
  • 电脑与手机 USB 线连接,确保执行adb devices可以找到设备 ID
  • 界面转至微信跳一跳游戏,点击开始游戏
  • 运行python wechat_jump_auto.py,如果手机界面显示 USB 授权,请点击确认
  • 请按照你的手机分辨率从./config/文件夹找到相应的配置,拷贝到 *.py 同级目录./config.json(如果屏幕分辨率能成功探测,会直接调用 config 目录的配置,不需要复制)

OK,我就按照步骤一步一步来:

1.打开手机开发者选项和usb调试,这一步我想不需要多说了,大家应该都知道怎么做;

2.需要确保adb devices可以找到设备。

搞移动端开发的应该都知道adb吧,不过可能有些人没有接触过,这里就简单说明一下如何执行adb命令。首先需要下载adb工具,一般Android studio的sdk中自带了,我们只需要配置一下环境变量就可以了,想知道如何配置,可以遵循如下步骤:

- 打开mac的terminal终端,输入 cd ~/ 【进入当前用户的home目录】
- 输入 touch .bash_profile 【如果没有.bash_profile这个文件,则创建一个这个文件】
- 输入 open .bash_profile 【打开我们创建的这个文件,此时应该弹出一个文本编辑框,如果是第一次配置环境,那么文本编辑框为空白】
- 在打开的文本编辑器中写入如下代码:
 export ANDROID_HOME=/usr/local/opt/android-sdk
 export PATH=${PATH}:${ANDROID_HOME}/tools
 export PATH=${PATH}:${ANDROID_HOME}/platform-tools
- 注意的ANDROID_HOME后面应该根据自己的sdk路径来填写,其余可以直接复制。至于sdk路径,可以打开Android Studio,在preference(Windows的setting)中搜索sdk来查看。
在终端中输入 source .bash_profile 【使我们的改动生效】
- 输入 adb 【验证是否完成配置,如果不显示 adb: command not found,说明配置完成 】

如果没有用过Android studio,那么可以去百度一下如何安装,我相信这对于大家来说不是一件困难的事,安装完成后只需要按照上面说的配置一下环境变量就可以了。接下来我们将手机连接到电脑,并开启第一步中的设置选项后,在电脑终端输入:

adb devices

不出意外的话,终端会出现类似如下内容:

Last login: Mon Jan 1 20:20:11 on ttys000
MoosdeMacBook-Pro:~ moos$ adb devices
List of devices attached
a619aaxx device

这样就代表我们adb设备连接成功了。

打开我们的微信中“跳一跳”游戏小程序,点击开始游戏,手机出现游戏初始界面;
要求我们运行脚本项目中的python文件,这就需要我们安装python了,不用担心,一般mac系统自带了python,我们终端

输入如下命令:

python

如果出现如下内容,则说明我们已经安装过了:

MoosdeMacBook-Pro:~ moos$ python
Python 2.7.10 (default, Jul 15 2017, 17:16:57)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

如果没有安装python,可以参考该文章: http://www.jb51.net/article/131924.htm

下面我们就需要运行wechat_jump_auto.py这个脚本文件了,这个是自动玩游戏,你也可以选择手动玩,运行wechat_jump_py3.py即可,如何运行?很简单,只需要把github上面的项目下载下来,并进入到该目录下,执行如下命令即可(以自动版为例):

python wechat_jump_auto.py

这样,我们就可以跑起来这个脚本了,但是你可能会遇到这个问题:

Traceback (most recent call last):
 File "wechat_jump_auto.py", line 8, in <module>
 from PIL import Image, ImageDraw
ImportError: No module named PIL
MoosdeMacBook-Pro:wechat_jump_game-master moos$

只需要安装pillow,执行如下命令即可:

sudo pip install Pillow

记得加上sudo,需要获取系统权限。

这样,应该基本可以跑起来脚本了。但是,vivox20手机运行了脚本之后,一直没有自动游戏,后来发现,可能是不同手机分辨率和尺寸差异,导致脚本没有是识别到对应的模拟按压的坐标位置,可以修改一下对应的按压参数为320,1210,720,910,对应的修改位置是wechat_jump_auto.py中的如下参数:

swipe['x1'], swipe['y1'], swipe['x2'], swipe['y2'] = 320, 410, 320, 410

该修改意见已经被作者合并到主分支了,打开该文件就可以看到了。再跑一下试试,发现还是不行,程序在运行,位置坐标也在变化,但游戏没有进行,那可能就是手机的问题了,尝试开启开发者设置中的usb安全验证设置,我再跑,嘿,可以了:

效果图

请忽略这渣图,vysor还没有很好的适配vivox20,并不是gif的问题:cry:,再看看终端的数据:

('scan_start_y: ', 720)
(1514815959, 0, 0, 0, 0)
adb shell input swipe 320 1210 720 910 200
('scan_start_y: ', 670)
(1514815962, 0, 0, 0, 0)
adb shell input swipe 320 1210 720 910 200
('scan_start_y: ', 670)
(1514815966, 0, 0, 0, 0)
adb shell input swipe 320 1210 720 910 200
('scan_start_y: ', 820)
(1514815971, 338, 1224, 788, 968)
adb shell input swipe 320 1210 720 910 710
('scan_start_y: ', 920)
(1514815976, 697, 1203, 400, 1008)
adb shell input swipe 320 1210 720 910 487
('scan_start_y: ', 820)
(1514815979, 320, 1275, 839, 940)
adb shell input swipe 320 1210 720 910 847
('scan_start_y: ', 870)
(1514815984, 392, 1194, 718, 1009)
adb shell input swipe 320 1210 720 910 514
('scan_start_y: ', 870)
(1514815987, 660, 1167, 450, 1052)
adb shell input swipe 320 1210 720 910 328
('scan_start_y: ', 770)
...

这样就没毛病了,同时,我还修改了2160x1080的配置参数,提高了跳跃的准确度,达到几千分不是问题,并且已经被作者同意了合并了,无需再做额外修改了。

在借用该脚本作者的一句话:

事实证明,机器人比人更会玩儿游戏。

总结

以上所述是小编给大家介绍的Android版微信跳一跳小游戏利用技术手段达到高分的操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • 利用Kotlin实现破解Android版的微信小游戏--跳一跳

    前言 昨天下午,微信小程序开放了游戏接口,朋友圈瞬间炸开了锅,尤其是"跳一跳"这款游戏的成绩单,在朋友圈刷了一波又一波. 下面就来给大家介绍了关于Kotlin破解Android版的微信小游戏跳一跳的相关内容,让大家可以好好炫耀一番. 成果 跳一跳 微信小程序可以玩游戏了,我们来破解一下<跳一跳>这个官方出品的小游戏吧. 思路 用usb调试安卓手机,用adb截图并用鼠标测量距离,然后计算按压时间后模拟按压. $ adb shell input swipe <x1>

  • Android版微信跳一跳小游戏利用技术手段达到高分的操作方法

    本文主要来讲个个好玩的东西,近来微信刚出的跳一跳微信小程序的游戏很火,看到很多人都达到了二三百分就各种刷朋友圈了. 甩手一个表情 最终我们达到的分数却是这样的: 羡慕吧 一定会有人拍手叫好,"黄金右手"!说真的,我已经不用右手好多年,而且我玩这个游戏压根就没用手,而是意念!哈哈,别喷我,开个玩笑而已,肯定是利用技术手段啦,什么技术?python喽-哈哈,不过不是我写的,我自己是做Android开发的,我对于python从来没有接触,只是恰好在蛋哥公众号看到关于这个游戏的文章,觉得有意思

  • C#实现微信跳一跳小游戏的自动跳跃助手开发实战

    一.前言: 前段时间微信更新了新版本后,带来的一款H5小游戏"跳一跳"在各朋友圈里又火了起来,类似以前的"打飞机"游戏,这游戏玩法简单,但加上了积分排名功能后,却成了"装逼"的地方,于是很多人花钱花时间的刷积分抢排名.后来越来越多的聪明的"程序哥们"弄出了不同方式不同花样的跳一跳助手(外挂?),有用JS实现的.有JAVA实现的.有Python实现的,有直接物理模式的.有机械化的.有量尺子的等等,简直是百花齐放啊-- 赶一下潮流

  • 微信跳一跳小游戏python脚本

    Python编写微信小游戏"跳一跳"的运行脚本,分享给大家. 更新了微信后发现了一款小游戏跳一跳,但是玩了一下午最高才达到200,每次差点破纪录后总是手抖就挂掉了,气的想要砸手机.闲来无事刷微博的时候正好看到有人分析如何编写脚本自动运行游戏破了3000多分,细看后觉得原理并不复杂,就索性花了一个晚上,参考大神的实现方法,在他的基础上删减了一些代码,也用Python写了个脚本.接下来进行原理和代码分析. 图1.跳一跳启动界面 原理 配置adb环境变量,在我的电脑–>属性–>高

  • python版微信跳一跳游戏辅助

    本文实例为大家分享了微信跳一跳游戏辅助python代码,供大家参考,具体内容如下 import os import PIL import numpy import matplotlib matplotlib.use('TKAgg') import matplotlib.pyplot as plt import time from matplotlib.animation import FuncAnimation # 是否需要进行图片更新 need_update = True def get_sc

  • 小米5s微信跳一跳小程序python源码

    本文实例为大家分享了微信跳一跳小程序python源码,供大家参考,具体内容如下 微信跳一跳小程序小米5s源码python,搭建环境后亲测可用. # coding: utf-8 import os import sys import subprocess import shutil import time import math from PIL import Image, ImageDraw import random import json import re # === 思路 === # 核

  • 安卓版微信跳一跳辅助 跳一跳辅助Java代码

    安卓版微信跳一跳辅助,java实现,具体内容如下 已经看到网上有大神用各种方式实现了,我这是属于简易版ADB命令式实现. 操作方法 1.光标移动到起始点,点击FORM 2.光标移动到目标点,点击TO 3.小人已经跳过去了 原理说明 安装APP,通过设置起点和目标点位置,获得弹跳的毫秒数,发送请求到连接手机的电脑中,电脑执行adb命令起跳. 具体实现 本人的测试设备是Mate9,android版本为7.0,由于在非Root环境下,普通安卓应用并不能通过Runtime.getRuntime().ex

  • 原生JS实现的跳一跳小游戏完整实例

    本文实例讲述了原生JS实现的跳一跳小游戏.分享给大家供大家参考,具体如下: 以下说的是闲暇编写的一个小游戏--跳一跳,类似于微信的跳一跳,大体实现功能有: 1.先随机生成地图: 2.按住按钮释放后完成动作并进行判断: 首先po一下代码: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="vie

  • js实现跳一跳小游戏

    本文实例为大家分享了js实现跳一跳小游戏的具体代码,供大家参考,具体内容如下 效果 流程分析 1.鼠标按下开始蓄力 2.鼠标松开,根据鼠标按下的时间让小球运动相应的距离 3.判断小球落点是否在平台内 4.如果在平台范围内,产生下一个平台,分数加10.如果不在游戏结束,判断分数是否大于历史最高分,更新历史最高分. 动画效果 5.鼠标按下小球所在平台要有蓄力效果,鼠标松开后慢慢恢复, 6.小球在空中的运动曲线要平滑 7.小球和平台要有3D效果 注意事项 8.运动涉及到计算器和延时器,要注意清除定时器

  • python微信跳一跳游戏辅助代码解析

    这个代码实现的是   手动点击起点 和 终点  ,程序自动判断距离.触屏时间  完成跳跃 原理(摘自项目说明页面): 1. 将手机点击到"跳一跳"小程序界面: 2. 用Adb 工具获取当前手机截图,并用adb将截图pull上来: adb shell screencap -p /sdcard/1.png adb pull /sdcard/1.png . 3. 用matplot显示截图: 4. 用鼠标点击起始点和目标位置,计算像素距离: 5. 根据像素距离,计算按压时间: 6. 用Adb工

  • 微信跳一跳python辅助脚本(总结)

    这段时间微信跳一跳这个游戏非常火爆,但是上分又非常的难,对于程序员来说第一个念头就是通过写一个辅助脚本外挂让上分变的容易,python现在比较火,我们一起来以python语言为基础总结以下各路神仙写的关于跳一跳的辅助脚本,大家在学习的时候主要理解他们的写法思路,对你学习python非常的有帮助. 1.微信跳一跳自动运行python脚本 注解:思路 核心:每次落稳之后截图,根据截图算出棋子的坐标和下一个块顶面的中点坐标, 根据两个点的距离乘以一个时间系数获得长按的时间 识别棋子:靠棋子的颜色来识别

随机推荐