我相信你们都应该知道,微信最近已经更新,并且有一个名为“ jump”的小游戏。玩了一段时间后,这很有趣,但这是纯手的感觉。经过很长时间的比赛,我终于获得了135分并获得了第一名。没想到我的朋友会在不久后被淘汰,最高的是200点。所以我认为开发一个助手会很好,所以我只考虑了最高的游戏
首先,让我们谈谈游戏的界面和规则
下面跟着
南京小程序开发我们先来看一下界面
规则:
按住屏幕并释放一定时间以跳转。如果您跳到最前面的图案,您将获得1分。如果按图片的中间,您将获得2分(例如,前2分,后4分,后6分,最高累积32分)在其他规则中没有解释
在整理出实现原理之后,实际上非常简单:计算黑底与图案中间之间的距离,然后调试时间。调整时间后,计算像素的最佳时间X,然后测试从黑底到图案中心的距离* x是最佳时间
当理论知识很好时,让我们实践一下
1.首先获取手机屏幕的图片并将其显示在WinForm程序中
2.让客户单击黑色底部和图案的中心(根据图片获得这两点似乎有点困难,至少现在是我的技术难度)
3.模拟屏幕按住多长时间
要获取屏幕图像,我们可以使用Android的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>
///Execute the ADB command
/// </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; // redirect standard input
P. StartInfo.RedirectStandardOutput =True; // redirect standard output
P. StartInfo.RedirectStandardError =True; // redirect error output
p.StartInfo.CreateNoWindow = true;
p.Start();
ret = p.StandardOutput.ReadToEnd();
p.Close();
}
return ret;
}
//图片点击事件
/// <summary>
///Black bottom position
/// </summary>
Point Start;
/// <summary>
///Pattern center or white spot position
/// </summary>
Point End;
private void pictureBox1_Click(object sender, EventArgs e)
{
var me = ((System.Windows.Forms.MouseEventArgs)(e));
if ( me.Button==MouseButtons . left) // pressing the left button is the coordinates of the black bottom
{
Start = ((System.Windows.Forms.MouseEventArgs)(e)).Location;
}
else if ( me.Button = = MouseButtons.Right )//Pressing the right button is the black bottom coordinates
{
End = ((System.Windows.Forms.MouseEventArgs)(e)).Location;
//Calculate the direct distance between two points
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 (distance between two points: {0}, press time: {1} ", value, (3.999022243950134 * value). ToString (" 0 "));
//3.999022243950134 this is the best time for me to get this resolution after many simulations
cmdAdb(string.Format("shell input swipe 100 100 200 200 {0}", (3.999022243950134 * value).ToString("0")));
}
}
这样,核心代码就完成了,要赶紧就难了。
最后,效果被释放。(不幸的是,当我的女售票员便宜时,我拍摄了一个屏幕快照。在屏幕捕获期间,我的手触摸了屏幕,这导致我按下并跳跃。否则,我必须刷到1W点,哈哈。 )
我估计用纯净的双手玩这个分数更令人伤心,哈哈哈,在朋友圈中排名第一
摘要
以上是南京小程序开发带来的本文的全部内容,希望本文的内容对您的学习或工作具有一定的参考学习价值,如果您有任何疑问,可以留言交流,谢谢您的评论开发者