前言

第一次看到这个跳一跳的游戏是在微博上,微博的照片上有个人站在窨井盖上,下面一群人“哈哈哈哈哈哈哈哈哈”。我的第一反应是,这是啥?

后来才知道是一个很火的微信小游戏叫跳一跳,玩了一会儿,发现像我这种手残党基本不适合此类游戏。仔细研究了一下,发现有破解的可能,虽然我这技术很烂,和那些玩机器视觉的大牛比不了。但是觉得理论上可行,于是就萌生了写个外挂的想法。

从用户的角度来思考,就两点:

一、眼睛看距离

二、手指控制按键时间的长短

这两点,我完全可以写个程序搞定啊,说到底就是个函数嘛。输入距离,返回按键时长。可这是个什么函数呢?

我在心里默念了二百遍,一定要是线性的啊!去坛子里转了一圈,貌似很多人都说是线性的,后来写完程序后测试了一下也确实如此。感谢上帝,要不是线性的,用神经网络什么的拟合,我就要疯了。

废话不多讲,直接上代码,不看代码的同学可以直接看最后的使用说明。

*********************************************************************************************************************************

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <math.h> #define PARA 3.3; // for jumpTime
int repeatFlag=0;bool getKey(char key)
{if(GetAsyncKeyState(key) & 0x8000) {   if(key=='R')repeatFlag=1;return true;}elsereturn false;
}
int main()
{  POINT mptrA,mptrB;  //remember the coordinate of mouse int jumpTime,distance;std::cout<<"\t\t*******************Introduction*****************"<<std::endl;std::cout<<"\t\t*********************BY Nirvana*****************"<<std::endl;std::cout<<"\t\tpress A to set A point,press S to set B point"<<std::endl;std::cout<<"\t\tpress space to jump,R to reset A and B point"<<std::endl;while(1){  again:while(getKey('A'))    //A{  GetCursorPos(&mptrA);Sleep(500);std::cout<<"\t\tget point A ("<<mptrA.x<<","<<mptrA.y<<")"<<std::endl;}while(getKey('S'))   //B{  GetCursorPos(&mptrB);Sleep(500);std::cout<<"\t\tget point B ("<<mptrB.x<<","<<mptrB.y<<")"<<std::endl;} distance=sqrt(pow((mptrA.x-mptrB.x),2)+pow((mptrA.y-mptrB.y),2)); //distance of the screenjumpTime=distance*PARA;//need to modify    while(getKey(VK_SPACE)||getKey('R'))  {Sleep(500);if(repeatFlag){std::cout<<"\t\tplease reset A point and B point"<<std::endl;repeatFlag=0;goto again;}else{std::cout<<"\t\tjump:"<<jumpTime<<std::endl;std::cout<<"\t\tjump>>>>>>>>>>>>>>>>>>>>>>>>>"<<std::endl;mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);  Sleep(jumpTime); mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); }}            }
} 

代码说明:

需要安装安卓虚拟机,让微信在电脑上跑起来,打开游戏后。利用鼠标量取距离,用mouse_event和Sleep结合控制按键的时间。

按下键"A"的时候,记录下鼠标所在位置A。按下键"S"的时候,记录下鼠标所在位置B。(因为这两个按键靠在一起,方便~~)。

然后计算一下,距离distance。通过乘宏里的参数PARA的得到按键时间的长短,按空格键实现跳跃的操作。

如果发现A,B两个位置没有记录对,可以按"R"重新记录。(R的意思是Repeat,而且距离其他三个按键比较远,不容易按倒~~)

实现效果如上图。理论上可以一直刷下去,但是作为测试已经够了。我是在windows平台下作的,linux的话,头文件需要修改,Sleep要改成sleep。

总结:

优点:

就两个字,简单。不需要拉其他库进来,就靠最傻逼的逻辑就能解决问题。

缺点:

1.不能完全实现自动,需要移动鼠标量取距离。(哎,学校里学的那些机器视觉早就还给老师了)

2.需要安卓虚拟机为平台。(手机的技能树,朕真的没有点啊!)

3.用户界面不好看。(我也无奈啊)

展望:

1.可以用机器视觉实现全自动,用python拉取第三方包进行截图后自动获得长度。

2.从开发者的角度,我觉得也可以进行破解。距离这个参数必然是有上下界的,玩过一会就发现这么些个长度都是重复出现的。那八成是用了一个随机数发生器,随机在一定范围内产生长度,关键是种子是如何选取的,若果是我,我一定会选取目前的时间作为种子。那只要我得到种子,就能不量取长度而直接获得值。更加方便。

*************************************************************************************************************************

使用说明

所需工具:1.电脑

2.安卓模拟器(我用的是雷电,地址 http://www.ldmnq.com/)

3.代码产生的可执行文件,jump.exe(地址 https://gitee.com/Lagolas/WeiXinTiaoYiTiao-FuZhu)

步骤:1.安装好安卓模拟器,让微信游戏跑起来。

2.在dos下,打开jump.exe,监测鼠标行为。

(参考:https://jingyan.baidu.com/article/414eccf6343deb6b431f0aca.html)

3.将鼠标移动到跳跃的起始位置(注意不要单击,移动即可),按下A键,记录位置A(dos上会有显示)。

4.鼠标移动到跳跃终点位置,按下S,记录B点位置。

5.发现移动的位置不对,可按R,重新输入。

6.按下空格键完成跳跃。如此循环。

第一次写“辅助”软件(微信游戏跳一跳)相关推荐

  1. python做的游戏放到微信_【1、 创建一个python的文件,运行后,文字版方式模拟微信游戏“跳一跳?】...

    python脚本学习过程推荐 学习流程: 一:打础 1.找到合适的书籍(推荐Python核心编程2Dive into Python),大致读一次,循环啊判,常用类啊,搞懂(太难的跳过) 2.勤练习py ...

  2. 基于图像识别的微信游戏“跳一跳”自动控制实验

    最近,微信小游戏"跳一跳"很火,看着朋友圈里别人晒出的图,我这个手残党十分不是滋味,于是我就想,能不能利用图像处理,做一个全自动的外挂呢.说罢,直接动手. Ps:以下内容的部分步骤 ...

  3. python设计游戏使用手机操作_如何使用python控制手机(以微信游戏跳一跳为例)

    打开手机的开发者选项,本人小米手机,系统android 7.0(miui 9.1),设置->我的设备->全部参数(点击miui版本5次,即可开启开发者模式) 设置->更多设置(倒数第 ...

  4. python 控制鼠标点击需要100ms为什么_用 Python3 和 OpenCV 替我玩一玩微信小游戏 — 跳一跳 (这算外挂么)...

    0 瞎弄 我知道你们喜欢先看效果 手残的我,始终跳不过你们这些超过 50 分的大佬.想起最近在用 Python 学习 ML (Mechine Learning, 机器学习) ,怎么用没学会,倒是里面神 ...

  5. mfc使用cef源代码实现_如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...

    很多小游戏都是由源代码编写而成的,那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有,如何获得微信小游戏跳一跳源码?下面就由奇瑰网小编带大家来了解一下相关的内容吧. 源代码组合包括哪些 ...

  6. 如何拷贝工程_如何获得微信小游戏跳一跳源码以及源代码组合包括哪些

    很多小游戏都是由源代码编写而成的,那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有,如何获得微信小游戏跳一跳源码?下面就由奇瑰网小编带大家来了解一下相关的内容吧. 源代码组合包括哪些 ...

  7. c语言小游戏跳一跳代码及注释,如何获得微信小游戏跳一跳源码以及源代码组合包括哪些...

    原标题:如何获得微信小游戏跳一跳源码以及源代码组合包括哪些 很多小游戏都是由源代码编写而成的,那大家知道源代码组合包括哪些吗?手机游戏源代码怎么使用的呢?还有,如何获得微信小游戏跳一跳源码?下面就由奇 ...

  8. 用Python编写微信小游戏“跳一跳”的运行脚本

    前言 更新了微信后发现了一款小游戏跳一跳,但是玩了一下午最高才达到200,每次差点破纪录后总是手抖就挂掉了,气的想要砸手机..闲来无事刷微博的时候正好看到有人分析如何编写脚本自动运行游戏破了3000多 ...

  9. 原创 | 微信小游戏“跳一跳”改分攻略!

    转载自:http://appscan.io/discover-discuss.html?id=1123859495 改分关键步骤: 电脑安装抓包软件,手机设置https代理到电脑 通过抓包软件,抓包拿 ...

最新文章

  1. Oracle必知基础总结
  2. 为提高访问速度建立本地文件服务器,html5 Application Cache——加快简历二次访问速度...
  3. 中国研究的超级系统计算机,[公告]超级系统恢复--学习电脑 Book 3 V1.1
  4. jQuery Tab
  5. hdu 5178(尺取法)
  6. Masonry 原理与使用说明
  7. mysql从字符串中取子字符串_如何从开始于MySQL中特定位置的字符串中提取子字符串?...
  8. leetcode 438. Find All Anagrams in a String | 438. 找到字符串中所有字母异位词(Java)
  9. 设计模式之四(抽象工厂模式第三回合)
  10. CRC16循环冗余校验 RTU-MODBUS标准 Linux C
  11. 如何将stdin、stdout、stderr重定向到/dev/null
  12. 操作系统的不确定性是指程序执行结果的不确定性_用不确定性促销策略提高用户购买意愿...
  13. shiro-cas------整合springboot客户端
  14. IS-IS详解(五)——IS-IS 三次握手与两次握手
  15. 小学生C++趣味编程教材
  16. 在遇到移动硬盘无法访问的情况下,如何无需格式化地修复硬盘?
  17. 无人机飞控 ardupilot Copter-4.0.7 库简介
  18. java bidi_java11教程--类Bidi用法
  19. 生物信息学算法之Python实现|Rosalind刷题笔记:003 中心法则:翻译
  20. matlab 反走样,如何在python中使用Matlab的imresize

热门文章

  1. 计算机二级win10系统无法安装,win10系统打不开二级网页链接的修复步骤
  2. Nginx 动态添加IP黑名单
  3. svn安装并用eclipse集成
  4. html内嵌式的语言,为何说PHP是一种HTML内嵌式的语言
  5. 执行力|学好这几步,让你的团队主动快速提升执行力
  6. 物体抓取位姿估計算法綜述_NO. 1 物体位姿估计 机器人抓取
  7. 避坑指南:Zotero的文件管理与同步zotfile、webdav
  8. ie不显示html图片不显示,IE浏览器图片显示不出来 IE浏览器图片不显示解决办法...
  9. 功利,是一种思维模式
  10. 华势喔刷MPOS日结政策 诚招合作代理加盟商