视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
.NET开发实现一个微信跳一跳的辅助程序
2020-11-27 22:35:07 责编:小采
文档

前言

相信大家应该都知道了,最近微信更新了,出现了一个小游戏“跳一跳”,玩了一下 赶紧还蛮有意思的 但纯粹是拼手感的,玩了好久,终于搞了个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

本地下载:http://xiazai.jb51.net/201801/yuanma/ShowAndroidModel(jb51.net).rar

总结

下载本文
显示全文
专题