精易论坛

标题: 微信跳一跳详细教程版 新手进来,分分钟学会 [打印本页]

作者: 噌经滴承诺    时间: 2018-1-9 17:46
标题: 微信跳一跳详细教程版 新手进来,分分钟学会
前言:最近跳一跳太火,大家都在写,今天把原理来说说,说得不对欢迎指出!


注:请不要加我微信,免得尴尬!(^_^)


低调就好

低调就好


准备工作:
1.电脑
2.数据线
3.安卓手机(因为我这渣渣电脑带不动模拟器,只能写真机版)


第一步:电脑安装ADB (https://developer.android.google.cn/studio/releases/platform-tools.html
             下载解压就可以了


第二步:大家不需要配置啥环境变量,我搞半天没搞懂,直接在ADB目录创建易语言源码就不需要配置了!


第三步:手机用数据线连接电脑。手机打开USB调试,还需要打开手机USB调试下面的“模拟按键”
             没有“模拟按键”的就打开“USB安全权限”,以我VIVO X20A打开“USB安全权限”打不开,
             问客服才知道要先退出VIVO账号,再登陆,才能打开。


第四步:打开第二步创建的易语言源码,创建图片框、两个按钮、一个编辑框。界面如下


这是界面

这是界面


以上工作做完之后,先来测试下ADB,看是否连接到手机


到ADB目录创建一个 a.bat
a.bat用记事本打开
输入”start"保存
运行a.bat得到一个CMD界面


在CMD里面输入“adb shell input keyevent 3”(这个是按下手机主页面键) 回车,看手机是否回到主页面

并且CMD里面没有输出错误!

CMD

CMD



以上准备工作做完,下面进入代码阶段:


自动模式:
              因为跳一跳背景和道具多为渐变色,所以识别不是太好,说下原理(我用这个模式只跳220多点)

第一步:截取手机屏幕保存为图片,并送传到电脑,加载到图片框,代码如下(子程序名:那么我们就开始跳吧)
  
子程序名返回值类型公开备 注
那么我们就开始跳吧  
' 删除之前取到的截图
判断 (集开始 = )
返回 ()



删除文件 (取运行目录 ()“\tiaoyitiao.png”)
' 使用adb命令截取手机屏幕
运行 (“adb shell screencap -p /sdcard/tiaoyitiao.png”, 真, 1)  ' 手机截屏保存到SD卡根目录
运行 (“adb pull /sdcard/tiaoyitiao.png”, 真, 1)  ' 图片传送到电脑程序目录上
图片框1.图片 = 读入文件 (取运行目录 ()“/tiaoyitiao.png”)  ' 把图片显示到软件上
判断 (集手动 = )
取棋子底部坐标 ()



代码都有备注,可以看看,看到最后面有个“取棋子底部坐标()”
那么下一步代码


  
子程序名返回值类型公开备 注
取棋子底部坐标  
变量名类 型静态数组备 注
color整数型 
刷子句柄整数型 
画笔句柄整数型 
r整数型 
g整数型 
b整数型 
x整数型 
y整数型 
' 临时代码 ()
dc = GetDC (图片框1.取窗口句柄 ())  ' 设置场景
画笔句柄 = CreatePen (0, 1, #黑色 )  ' 画笔颜色 、 形状、粗细
刷子句柄 = CreateSolidBrush ( #红色 )  ' 刷子颜色
x = 0
y = 270  ' 定位Y270 加快速度
判断循环首 ()
x = x + 1
判断 (x > 图片框1.宽度)  ' X轴不能大于组件宽度
x = 1
y = y + 1
判断 (y > 图片框1.高度)  ' Y轴不能大于组件高度
_按钮1_被单击 ()
信息框 (“未找到”, 0, , )
跳出循环 ()



color = GetPixel (dc, x, y)  ' 取坐标颜色
判断 (color = 6042679)  ' 棋子特征颜色
跳出循环 ()
判断 (color = 6502712)  ' 棋子特征颜色
跳出循环 ()
判断 (color = 6371383)  ' 棋子特征颜色
跳出循环 ()
判断 (color = 6699831)  ' 棋子特征颜色
跳出循环 ()



判断循环尾 ()
SelectObject (dc, 画笔句柄)  ' 更换画笔
Ellipse (dc, x - 3, y - 3, x + 3, y + 3)  ' 画空心圆
SelectObject (dc, 刷子句柄)  ' 更新刷子
Ellipse (dc, x - 3, y - 3, x + 3, y + 3)  ' 画实心圆
DeleteObject (刷子句柄)  ' 释放刷子
DeleteObject (画笔句柄)  ' 释放画笔
棋子.x = x  ' 记录棋子坐标
棋子.y = y
输出调试文本 (“棋子颜色:”到文本 (color))
取小板登坐标 ()


可以看到,棋子我是直接找的4个颜色,经过多方测试,这四个颜色都能识别到棋子底部
找到这个颜色就把坐标记录下来。并且用刷子在坐标的位置画个实心圆显示给我们看,
方便调试!

而且Y轴是从270开始的,一行一行的找,加快速度,按我的图片框高度是从270的!!!!


棋子的坐标找到了,那么我们再找“板凳”的坐标(“板凳”的坐标识别不太理想)


  
子程序名返回值类型公开备 注
取小板登坐标  
变量名类 型静态数组备 注
color整数型 
刷子句柄整数型 
画笔句柄整数型 
r整数型 
g整数型 
b整数型 
x整数型 
y整数型 
color2整数型 
' 临时代码 ()
dc = GetDC (图片框1.取窗口句柄 ())
画笔句柄 = CreatePen (0, 1, #黑色 )
刷子句柄 = CreateSolidBrush ( #绿色 )
x = 0
y = 140  ' 默认从200开始,加快取色速度
判断循环首 ()
x = x + 1
判断 (x > 图片框1.宽度)  ' 像素x不超过组件的宽度
x = 1
y = y + 1
判断 (y > 图片框1.高度)  ' 像素Y不超过组件的高度
_按钮1_被单击 ()
信息框 (“未找到”, 0, , )
跳出循环 ()



color = GetPixel (dc, x, y)  ' 获取坐标颜色值
判断 (color2 = 0)  ' 如果color2=0 ,也就是第一次取色,把取到的颜色给他保存
color2 = color
判断 (color - color2 > 78000)  ' 背景颜色是个渐变色,差值不超过10万 超过则说明,到达要跳的物体顶部
跳出循环 ()
判断 (color = 16185078)  ' 白色石头
跳出循环 ()
判断 (color = 7435156)  ' 褐色石头
跳出循环 ()
判断 (color = 7434609)  ' 黑灰石头
跳出循环 ()
判断 (color = 7040912)
跳出循环 ()
判断 (color = 15856113)
跳出循环 ()
判断 (color = 6655572)
跳出循环 ()
判断 (color = 9291745)
跳出循环 ()



判断循环尾 ()
SelectObject (dc, 画笔句柄)  ' 把画笔载入
y = y + 20
Ellipse (dc, x - 5, y - 5, x + 5, y + 5)  ' 用画笔画空心圆
SelectObject (dc, 刷子句柄)  ' 更换成刷子
Ellipse (dc, x - 5, y - 5, x + 5, y + 5)  ' 用刷子画实心圆
DeleteObject (刷子句柄)
DeleteObject (画笔句柄)
马桶.x = x
马桶.y = y
输出调试文本 (“马桶颜色:”到文本 (color))
屁股定理 ()





可以看到“板凳”的Y轴从140开始的,因为通常“板登”都在棋子上方
找的“板凳”是“板凳”的最上面的一个点的坐标,并且画个实心圆,方便调试
找到的坐标也记录下来


棋子、板凳 坐标识别界面图如下


坐标识别界面

坐标识别界面



可以看到棋子的底部有个红色的实心圆显示找到的坐标
板凳上也有个绿色的实心圆显示坐标(板凳的绿色圆在板凳中间偏上是因为我识别的时候是识别到顶部的,然后我在代码中把板凳的Y轴+30个像素,因为要取板凳中间的坐标的算法还没想出来,比较麻烦,所以就只取了一个顶部的坐标,然后下移30个像素,像小板凳啥的30个刚好)


其实找板凳的颜色只有上面两个判断,后来分数多了,背景色不断变化,就有添加了一个固定的颜色


上面棋子和板凳的坐标找到了,那么进入“勾股定理”(其实我小学没毕业,早忘了这东西了,百度重学的)


计算棋子到板凳直线距离代码如下:


  
子程序名返回值类型公开备 注
屁股定理  
变量名类 型静态数组备 注
x整数型宽度
y整数型高度
平方双精度小数型 
时间整数型 
判断 (棋子.x > 马桶.x)  ' 如果马桶的x轴小于棋子的x轴,,也就是马桶在左边,我们要往左边跳
x = 棋子.x - 马桶.x

x = 马桶.x - 棋子.x  ' 往右跳

y = 棋子.y - 马桶.y  ' 取得高度
' 直角三角型的屁股定理
平方 = x × x + y × y
平方 = 求平方根 (平方)  ' 取得棋子到马桶的直线距离
平方 = 平方 × 到数值 (编辑框1.内容)  ' 计算要跳的时间(毫秒)
时间 = 到整数 (平方)
我要跳高 (时间)


上面求到直线距离为什么要*编辑框的微调呢?
1.大多手机屏幕分辨率不一样,得到的截图尺寸有大小
2.截图的图片加载到图片框是经过缩放的,而且是按比例缩放
3.一般我测试出的按压时间在200-900毫秒之间


也就是得到的直线距离是30的话,要按到300毫秒,那么微调为10
以我的手机和我设置的图片框尺寸,微调在4.8-5.0之间


最后把得到的按压时间传给下一子程序去执行手机按压


  
子程序名返回值类型公开备 注
我要跳高  
参数名类 型参考可空数组备 注
时间整数型
变量名类 型静态数组备 注
a文本型 
如果真 (集开始 = )
返回 ()

运行 (“adb shell input swipe 251 255 380 395 ”到文本 (时间), 真, 1)
延迟 (2000)
那么我们就开始跳吧 ()


i支持库列表   支持库注释   
spec特殊功能支持库


运行的那段代码是让手机模拟滑动,从什么地方按住滑动到什么地方,最后一个就是滑动的时间(毫秒)


以上自动跳一跳就完了,测试不理想,就加了个手动档,这个简单


  
子程序名返回值类型公开备 注
_按钮手动档_被单击  
集开始 = 真
集手动 = 真
那么我们就开始跳吧 ()


按下手动档,取一次手机屏幕到图片框


  
子程序名返回值类型公开备 注
_图片框1_鼠标左键被按下逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
' dc = GetDC (0)
' 输出调试文本 (GetPixel (dc, 取鼠标水平位置 (), 取鼠标垂直位置 ()))
棋子.x = 取鼠标水平位置 ()
棋子.y = 取鼠标垂直位置 ()
子程序名返回值类型公开备 注
_图片框1_鼠标左键被放开逻辑型 
参数名类 型参考可空数组备 注
横向位置整数型
纵向位置整数型
功能键状态整数型
马桶.x = 取鼠标水平位置 ()
马桶.y = 取鼠标垂直位置 ()
屁股定理 ()



鼠标在图片框的棋子下按下不放
到板凳的中心位置放开鼠标,就得到了棋子和板凳的坐标

再调用上面写完的“屁股定理()”

之后就是按鼠标,放鼠标了,不需要再按手动档按钮


注:手机开启USB调试和USB安全权限风险较高,请不要乱使用别人的程序!!!!!


附上源码,无模块,无病毒!







补充内容 (2018-1-11 03:16):
@波哥野结衣 我的意思也是找色,本来背景色差值10万的,后来测试在78000最底,找色也不好找,棋子和板凳的距离过近,棋子会比板凳高,这样找出来的板凳顶点是棋子的顶点,也想过把所有的板凳顶点用固定值,但太麻烦

补充内容 (2018-1-11 03:20):
有人说ADB驱动安装不了,大家可以把数据线多插几次到电脑,我第一次安装手机ADB驱动也失败,重插数据线,它会自动安装,还有这里是和大家交流,大家都是文明人!!!
作者: 胆小的老虎    时间: 2018-1-9 18:51
精彩的教程         
作者: lijiaqi    时间: 2018-1-9 18:52
跳一跳详细教程版 新手进来,分分钟
作者: 蚂蚁ll    时间: 2018-1-9 18:58
感谢发布原创作品,精易因你更精彩!
作者: 九小天    时间: 2018-1-9 19:05
微信跳一跳详细教程版
作者: qiuyingjia    时间: 2018-1-9 19:11
可以的,支持
作者: Fcshe    时间: 2018-1-9 19:12
感谢分享。。。。。。

作者: lanselm    时间: 2018-1-9 19:15
新手进来,分分钟
作者: 蚂蚁ll    时间: 2018-1-9 19:26
我的是vivo X7  我用这个跳还没我手动玩分高 老实掉下去 怎么破
作者: 806478617    时间: 2018-1-9 19:36
新技能已get√
作者: 花开一半    时间: 2018-1-9 19:50
谢谢分享啊
作者: coolge    时间: 2018-1-9 19:53
厉害   牛  牛  牛
作者: leloveying    时间: 2018-1-9 19:59
支持一下...........
作者: 神轨道    时间: 2018-1-9 20:04
谢谢分享,来学习并装逼

作者: lcj21    时间: 2018-1-9 20:07
支持一下,不错!

作者: DerBai    时间: 2018-1-9 20:11
这个分享绝对强势。
作者: suangke    时间: 2018-1-9 20:30
信跳一跳详细教程版 新手进来,分分钟学会

作者: maxthon    时间: 2018-1-9 20:39
好详细呀.支持地你~~
作者: 鬼公子    时间: 2018-1-9 20:47
牛逼了 牛逼了!!!

作者: onefish    时间: 2018-1-9 20:54
#在这里快速回复#        新技能已get√
作者: 冷珞    时间: 2018-1-9 21:00
感谢楼主分享,学到了

作者: wmv520    时间: 2018-1-9 21:00
        此处应该有鼓励~
作者: 小R软件    时间: 2018-1-9 21:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: 1425113841    时间: 2018-1-9 21:11
微信跳一跳详细教程版 新手进来,分分钟学会
作者: 黑熊猫    时间: 2018-1-9 21:19
厉害了666  谢谢有你~

作者: 小宇88    时间: 2018-1-9 21:32

作者: BlackCode    时间: 2018-1-9 21:33
无聊看看这个哈哈哈

作者: 峰生水起之林    时间: 2018-1-9 21:36
感谢分享了
作者: 想知道么…    时间: 2018-1-9 21:37
        新技能已get√
作者: jspengcf    时间: 2018-1-9 21:49
其实可以用手动确定起点和终点,然后跳就行了
作者: 虚伪的爱    时间: 2018-1-9 22:00
支持开源~!感谢分享
作者: 噌经滴承诺    时间: 2018-1-9 22:05
蚂蚁ll 发表于 2018-1-9 19:26
我的是vivo X7  我用这个跳还没我手动玩分高 老实掉下去 怎么破

请用手动档‘
作者: 噌经滴承诺    时间: 2018-1-9 22:06
jspengcf 发表于 2018-1-9 21:49
其实可以用手动确定起点和终点,然后跳就行了

这个是手动档,注重的是自动档
作者: XW2311236144    时间: 2018-1-9 22:07
厉害了我的老哥

作者: yunying    时间: 2018-1-9 22:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: 阿仁同学    时间: 2018-1-9 22:36
66666666        
作者: 汉族    时间: 2018-1-9 22:36
不知道 这个 有啥用,能赚钱钱吗?很多人都像xd一样。
作者: qq444255022    时间: 2018-1-9 22:51
附上源码,无模块,无病毒!
作者: 别了所谓的曾经    时间: 2018-1-9 23:01
谢谢分享
作者: Meself    时间: 2018-1-9 23:07
回复下载。
作者: 740949011    时间: 2018-1-9 23:26
谢谢分享,adb非常好用
作者: kentfung    时间: 2018-1-9 23:30
这个可以拓展很多东西哦
作者: 一生放荡mo    时间: 2018-1-9 23:31
拿走了。 谢谢了

作者: Skoer    时间: 2018-1-10 01:19
家家加加军家家加加军家家加加军就解决

作者: 精易求精丶    时间: 2018-1-10 01:46
厉害了我的哥
作者: wqy88    时间: 2018-1-10 07:57
微信跳一跳详细教程版 新手进来,分分钟学会
作者: dwtpl    时间: 2018-1-10 08:12
6666666666

作者: PeacefulZzz    时间: 2018-1-10 08:22
学习试用下下,谢谢楼主

作者: wqy88    时间: 2018-1-10 09:08
#在这里快速回复#无模块,无病毒
作者: 屎加豆    时间: 2018-1-10 09:41
本帖最后由 屎加豆 于 2018-1-10 22:53 编辑

clear all the content
1_new.png
2_new.png
3_new.png
6_new.png

作者: 指尖流淌    时间: 2018-1-10 10:07
6666好东西啊
作者: c32x78    时间: 2018-1-10 10:11
6666好东西啊
作者: Conquer    时间: 2018-1-10 10:37


作者: 忧郁之子    时间: 2018-1-10 13:07
厉害了,支持一下。
作者: ymeng    时间: 2018-1-10 13:21
很详细,如果有视频的话更好了---
作者: 花殇〃独吟梦    时间: 2018-1-10 13:48
必须支持一下

作者: 0xfive    时间: 2018-1-10 14:32
66666666666666666666

作者: 171796163    时间: 2018-1-10 15:07
66666厉害了。
作者: jwj52    时间: 2018-1-10 15:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: 易友k    时间: 2018-1-10 15:49
感谢分享 !!!!!!!!!!!
作者: srysry123123    时间: 2018-1-10 16:03
6666666666666
作者: srysry123123    时间: 2018-1-10 16:04
66666666666
作者: 西蒙    时间: 2018-1-10 16:08
学下 ADB!!!

作者: 小桥流水34    时间: 2018-1-10 16:18
感谢分享看看

作者: zjm1202    时间: 2018-1-10 16:20

作者: 夜~微~凉    时间: 2018-1-10 16:26

作者: k919131607    时间: 2018-1-10 16:27

作者: Integer    时间: 2018-1-10 16:29

作者: Binz    时间: 2018-1-10 16:31
111111111111111111111111111111111111

作者: junyang520    时间: 2018-1-10 16:32
支持一下666666

作者: poicue    时间: 2018-1-10 16:34
学习学习学一学
作者: superlu    时间: 2018-1-10 16:35
这厉害的不要不要哇!
作者: wangran    时间: 2018-1-10 16:38
大牛,学习了
作者: 云遮天    时间: 2018-1-10 16:38
手机开启USB调试和USB安全权限风险较高,请不要乱使用别人的程序!!!!!

作者: 快捷导航    时间: 2018-1-10 16:39
羡慕你们数学太好 ,我想写个  关键是算不了距离
作者: hkxiang    时间: 2018-1-10 16:39
感谢分享看看
作者: bnightning    时间: 2018-1-10 16:40
谢谢分享小媳妇学习下分享
作者: 健弟弟    时间: 2018-1-10 16:41
没看懂,反正感觉特别牛笔的样子
作者: LAZYPAPA    时间: 2018-1-10 16:42
66666666666666

作者: 少年包工头    时间: 2018-1-10 16:43
厉害了我的哥

作者: cfbingyue    时间: 2018-1-10 16:45
研究看看,,刷刷分~
作者: 我是我我我我    时间: 2018-1-10 16:46
66666666669666
作者: qishang    时间: 2018-1-10 16:47
66666666666666666

作者: Eric_Yang    时间: 2018-1-10 16:50
66666666666666666666666666666666666

作者: 易语言验证    时间: 2018-1-10 16:52
感谢分享

作者: 1126683066    时间: 2018-1-10 16:53
刷分喽6666666
作者: zhaorenfei    时间: 2018-1-10 16:54
新手进来,分分钟学会
作者: shunxing    时间: 2018-1-10 16:54
牛逼了!人才!感谢分享
作者: 暗月色    时间: 2018-1-10 16:58
看看.....................................

作者: 醉看ジ笑红颜づ    时间: 2018-1-10 17:00
哈哈,看看。。。

作者: 万物生光辉    时间: 2018-1-10 17:00
66666666


作者: geoleg    时间: 2018-1-10 17:13
真是厉害那
作者: 考拉的猪    时间: 2018-1-10 17:17
分分钟学会 分分钟学会

作者: 终极易人    时间: 2018-1-10 17:18
6666666666666666666666666666666666666

作者: 288    时间: 2018-1-10 17:18
好东西。。。。。。。。。。。。。。。。。。

作者: Cinylla    时间: 2018-1-10 17:19
好厉害

作者: pjjinliu    时间: 2018-1-10 17:19
看本帖隐藏内看本帖隐藏内看本帖隐藏内
作者: yidududx    时间: 2018-1-10 17:21
好东西!!!!!!!

作者: asd159157158    时间: 2018-1-10 17:23
看电有点懵  自己下载来试试吧

作者: 1521376428    时间: 2018-1-10 17:24
66666666666


333333333333




欢迎光临 精易论坛 (https://bbs.125.la/) Powered by Discuz! X3.4