昨天微信更新了,出现了一个小游戏“跳一跳”,玩了一下 赶紧还蛮有意思的 但纯粹是拼手感的,玩了好久,终于搞了个135分拿了个第一名,没想到过一会就被朋友刷下去了,最高的也就200来分把,于是就想着要是开发个辅助就好了,于是简单想了一下最高游戏

先来说下这个游戏的界面和规则:

先看看界面

规则:按住屏幕 按一定时间松开就可以跳跃,跳跃到前方的图案中得1分,图按中间得2分(连续多个中间累加2分,比如第一个2分 第二个4分 第三个6分 最高累计32分) 其它规则不说明了

整理了下实现原理,其实挺简单的:就是计算黑人的底部到图案中间的距离,然后就调试时间,调好时间后就计算一个像素点的最佳时间X,然后以后每次测试黑人底部到图案中心的距离*X 就是最佳时间

理论知识好了 就来实践把

1、首先要获取手机屏幕的图片 并展示在winform程序里面
2、让客户点击黑人底部和图案中心点(根据图片去获取这两个点 貌似有点困难 至少我现在的技术困难)

3、模拟屏幕按下并按住多长时间

获取屏幕图片我们可以根据安卓的adb.exe来获取,但我对这个东西不太熟悉,就百度了几个命令  1、截屏命令 2 传输命令 和模拟滑动命令

adb shell /system/bin/screencap -p /sdcard/screenshot.png(保存到SDCard)
adb pull /sdcard/screenshot.png d:/screenshot.png(保存到电脑)
adb shell input swipe 250 250 300 300 100 滑动 前四个是坐标 最后一个是时间

好了实现的方法也找到了 就码代码把

执行adb命令的函数

/// <summary>
/// 执行adb命令
/// </summary>
/// <param name="arguments"></param>
/// <param name="ischeck"></param>
/// <returns></returns>
private string cmdAdb(string arguments,bool ischeck=true)
{
if (ischeck&&!HasAndroid)
{
return string.Empty;
}
string ret = string.Empty;
using (Process p = new Process())
{
p.StartInfo.FileName = Program.AdbPath;// @"C:\Android\sdk\platform-tools\adb.exe";
p.StartInfo.Arguments = arguments;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true; //重定向标准输入
p.StartInfo.RedirectStandardOutput = true; //重定向标准输出
p.StartInfo.RedirectStandardError = true; //重定向错误输出
p.StartInfo.CreateNoWindow = true;
p.Start();
ret = p.StandardOutput.ReadToEnd();
p.Close();
}
return ret;
}

//图片点击事件

/// <summary>
/// 黑人底部位置
/// </summary>
Point Start;
/// <summary>
/// 图案中心或者白点位置
/// </summary>
Point End;
private void pictureBox1_Click(object sender, EventArgs e)
{
var me = ((System.Windows.Forms.MouseEventArgs)(e));
if (me.Button==MouseButtons.Left)//按下左键是黑人底部的坐标
{
Start = ((System.Windows.Forms.MouseEventArgs)(e)).Location;
}
else if (me.Button == MouseButtons.Right)//按下右键键是黑人底部的坐标
{
End = ((System.Windows.Forms.MouseEventArgs)(e)).Location;
//计算两点直接的距离
double value = Math.Sqrt(Math.Abs(Start.X - End.X) * Math.Abs(Start.X - End.X) + Math.Abs(Start.Y - End.Y) * Math.Abs(Start.Y - End.Y));
Text = string.Format("两点之间的距离:{0},需要按下时间:{1}", value, (3.999022243950134 * value).ToString("0"));
//3.999022243950134 这个是我通过多次模拟后得到 我这个分辨率的最佳时间
cmdAdb(string.Format("shell input swipe 100 100 200 200 {0}", (3.999022243950134 * value).ToString("0")));
}
}

  

就这样核心代码就完成了 是不是赶紧很简单了。。

最后放出效果把 ,(可惜被我女票手贱就截屏了,截屏的时候手碰了屏幕 导致按下去跳下去了,不然我是要刷到1W分的 哈哈)

我估计这个分数 纯手玩 估计比较心碎把 哈哈  朋友圈就霸占第一名把  哈哈

最后给源码把  地址:https://files.cnblogs.com/files/dotnet-org-cn/tiaotitiao.rar

关注公众号githubcn,免费获取更多学习视频教程

微信小程序 跳一跳 外挂 C# winform源码的更多相关文章

  1. 手把手教你玩微信小程序跳一跳

    最近微信小程序火的半边天都红了,虽然不会写,但是至少也可以仿照网上大神开发外挂吧!下面手把手教妹纸们(汉纸们请自觉的眼观耳听)怎么愉快的在微信小游戏中获得高分. 废话不多说,咱们这就发车了!呸!咱们这 ...

  2. python--微信小程序“跳一跳‘外挂

    参考网站:http://blog.csdn.net/LittleBeautiful/article/details/78955792 0x00:准备工具: Windows 10: 一个安卓真机 pyt ...

  3. 微信小程序自定义Tabber,附详细源码

    目录 1,前言 2,说明 3,核心代码 1,前言 分享一个完整的微信小程序自定义Tabber,tabber按钮可以设置为跳转页面,也可以设置为功能按钮.懒得看文字的可以直接去底部,博主分享了小程序代码 ...

  4. 检测微信小程序是否被反编译获取源码

    众所周知,微信小程序的代码安全性很弱,很容易被别人反编译获取源码.我自己的小程序也被别人反编译拿到源码还上线了,非常无语. 既然客户端不好防范,服务端还是可以做点手脚的. 小程序的Referer是不可 ...

  5. 微信小程序跳一跳辅助程序(手动版)

    最近,微信官方推出了demo小程序游戏<跳一跳>,这个游戏操作简单,容易上手,却又不容易获得高分,受到很多人的喜爱(emm...这游戏有毒).自己也尝试了玩了几次,作为一个手残+脑残的资深 ...

  6. 微信小程序初探(二):阅读官方demo源码

    阅读demo有助于理解逻辑,而且demo源码中应该包含了框架开发人员想要表达的意思的精华,先从app.js着手来阅读. 附带贴下说明: https://mp.weixin.qq.com/debug/w ...

  7. 用Kotlin破解Android版微信小游戏-跳一跳

    前言 微信又更新了,从更新日志上来看,似乎只是一次不痛不痒的小更新.不过,很快就有人发现,原来微信这次搞了个大动作——在小程序里加入了小游戏.今天也是朋友圈被刷爆的缘故. 看到网上 有人弄了一个破解版 ...

  8. 微信小程序跳转函数总结

    微信小程序跳转函数总结 ​ 笔者在微信小程序前端的开发过程中,在不同的情况下遇到了需要使用不同的页面跳转逻辑的情况,以下是我对这些函数的使用场景的一个总结介绍. wx.navigateTo 这是最常用 ...

  9. 两百条微信小程序跳坑指南(不定时更新)

    微信小程序联盟出品 跳坑textarea<二百二十三>不显示文本及textarea相关问题集合跳坑<二百一十三> background-image无法获取本地资源图片....跳 ...

随机推荐

  1. Java入门:Java环境变量PATH、CLASSPATH、JAVA_HOME

    一些初学者在用java HelloWorld指令运行程序的时候出现: Exception in thread "main" java.lang.NoClassDefFoundErr ...

  2. python map对象

    工作中遇到需要将List对象中的元素(list类型)转化为集合(set)类型,转化完成之后需要需要访问其中的元素. 第一步,使用map方法进行转换 data = [[1, 3, 4], [2, 3, ...

  3. P1392 取数

    P1392 取数 题目描述 在一个n行m列的数阵中,你须在每一行取一个数(共n个数),并将它们相加得到一个和.对于给定的数阵,请你输出和前k小的取数方法. 说明 对于20%的数据,n≤8 对于100% ...

  4. P3572 [POI2014]PTA-Little Bird

    P3572 [POI2014]PTA-Little Bird 一只鸟从1跳到n.从1开始,跳到比当前矮的不消耗体力,否则消耗一点体力,每次询问有一个步伐限制k,求每次最少耗费多少体力 很简短的题目哼. ...

  5. javascript精雕细琢(三):作用域与作用域链

    目录 引言 1.执行环境 2.作用域与作用域链 引言        作用域与作用域链是JS应用中无时无刻不在影响程序运行的关键属性,但是由于它的不可见性,或者说它存在的过于普遍,简直就像空气一样.所以 ...

  6. 蓝桥杯 算法提高 学霸的迷宫 经典BFS问题

      算法提高 学霸的迷宫   时间限制:1.0s   内存限制:256.0MB      问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗.但学霸为了不要别人打扰,住在一个城 ...

  7. Java并发编程原理与实战七:线程带来的风险

    在并发中有两种方式,一是多进程,二是多线程,但是线程相比进程花销更小且能共享资源.但使用多线程同时会带来相应的风险,本文将展开讨论. 一.引言 多线程将会带来几个问题: 1.安全性问题 线程安全性可能 ...

  8. 美轮美奂!9款设计独特的jQuery/CSS3全新应用插件(下拉菜单、动画、图表、导航等)

    今天要为大家分享9款设计非常独特的jQuery/CSS3全新应用插件,插件包含菜单.jQuery焦点图.jQuery表单.jQuery图片特效等.下面大家一起来看看吧. 1.jQuery水晶样式下拉导 ...

  9. Linux Shell管道调用用户定义函数(使shell支持map函数式特性)

    Linux中有一个管道的概念,常用来流式的处理文本内容,比如一个文件对其中的每一行应用好几个操作,出于两个方面的考虑可能需要在管道中使用用户定义函数: 1. 刚需: 内置的sed/awk之类的可能没法 ...

  10. php array转化为utf-8编码以便于转化为json数据

    php中转化为json时,字符串或数组编码必须为utf-8编码. 在网上找到了一个方法可以比较简单的转化,在此记录: 利用var_export()和eval()方法var_export():输出或返回 ...