【解决方法】按键精灵 实现 狂野飙车9 自动领取每日广告卡牌包 (1)
环境:
工具:手机/安卓模拟器,按键精灵手机助手
系统版本:android 10
问题描述:
描述:通过编程实现自动领取每日广告卡牌包,分享思路和使用到的代码,并进行解析。
本文章仅仅只是个人学习所用,记录并复习所用的知识,并未对软件进行非法篡改和破坏行为。
提示:若按照教程还是无法完成操作,可以进入右侧的企鹅,找我看看。
解决方法-视频与文字教程:
视频教程:https://www.bilibili.com/video/BV1dP411v7rD/
文字教程:
1.首先思考思路
流程大致为:主界面-进入领取界面-开始循环-完成后返回主界面
同时代码需要具备:每个步骤都有其输出提示-将固定的步骤/高频率的代码写成函数。
2.准备工作:实现,将固定的步骤/高频率的代码写成函数。
- 一般为固定的点击动作,如,某个关闭按钮固定位为一个位置,那么就封装一个函数代替动作。
- 日志和提示功能也很常用,点击和滑动动作也同样。
实例封装代码:
Sub 点击_小房子
Call 操作_点击并延迟_秒 (1023,2236,3)
End Sub
Function 提示(test)
TracePrint test
ShowMessage test
End Function
Function 操作_点击并延迟_秒(x, y, num)
Tap x, y
Delay int(num) * 1000
End Function
3.检测是否在主界面
使用颜色命令:FindMultiColor
- 定位大概6个特征点,可看到主界面的3种货币的位置是固定的,所以选取这里。并且选取范围,减少匹配时间。
- 函数需要返回值,故类型为Function,后续直接调用即可。
- 函数名没有固定要求,个人喜欢这种格式,方便调用和维护,查找
实例代码:
Function 检测_检查是否在主界面
Dim intX,intY
Dim num = 1
FindMultiColor 977,728,1069,1528,"00C6FF","0|-27|00C6FF,-8|-330|FF9000,-34|-346|FD8E00,-11|-677|1589E6,-4|-657|23649A",0,0.8,intX,intY
If intX > -1 And intY > -1 Then
call 提示 ("提示:在主界面~")
num = 1
Else
call 提示 ("提示:不在主界面!")
num = 0
End If
检测_检查是否在主界面 = num
End Function
3.进入卡牌包界面
使用触摸命令:tap
- 在成功检测到在主界面后,进行一系列的点击动作,并根据自己设备的性能选择合适的延迟时间
- 需要使用到 if 判断,并对比函数的返回值,返回为真,那么就进行后续操作。
实例代码:
If 检测_检查是否在主界面() = 1 Then
call 提示 ("操作:进入卡牌包中")
Call 操作_点击并延迟_秒 (1015,1957,3) //右上角
Call 操作_滑动并延迟_秒 (880,213,200,236,1,3)
Call 操作_点击并延迟_秒 (371,209,3) //卡牌包
Call 操作_滑动并延迟_秒(438, 2026, 419, 496, 1, 3)
Else
call 提示 ("异常:不在主页面")
Exit Function
End If
4.开始循环
使用 for 循环内部进行 if 判断
- 卡牌领取是有上限的,所以进行固定次数的循环
- 使用 if 判断是否还有次数,判断条件为出现红色字体
实例代码:
//开始循环看广告
Call 提示 ("操作:循环看广告")
Call 操作_点击并延迟_秒 (115,1892,2) //第一次点击
For 5
If CmpColorEx("119|1018|4D05D3,126|1065|4F04DC,107|1087|4D04D5,70|1124|DDD9D8,117|1201|400C89,126|1253|4509A5",0.8) = 0 Then
Call 操作_点击并延迟_秒 (111,1161,3)
Call 操作_点击并延迟_秒(111, 1884, 60)
Call 操作_点击并延迟_秒(965,2084, 3) //退出
Call 操作_点击并延迟_秒(965,2084, 3)
Call 操作_点击并延迟_秒 (111,1884,3) //右下角继续
End If
Next
5.完成后返回主界面
使用触摸命令:tap
- 很基础的点击,注意延迟时间即可。
实例代码:
//返回桌面
Call 提示 ("操作:任务完成,返回桌面")
Call 点击_关闭卡牌包 ()
Call 点击_小房子 ()
Call 提示 ("完成任务:每日广告碎片")
6.此时就已经完成功能,大概70行
本文来自博客园,作者:爱吃菠萝包,转载请注明原文链接:https://www.cnblogs.com/boluo0423/p/17501732.html