【解决方法】按键精灵 实现 狂野飙车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

image


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

image


5.完成后返回主界面
使用触摸命令:tap

  • 很基础的点击,注意延迟时间即可。
实例代码:
    //返回桌面
    Call 提示 ("操作:任务完成,返回桌面")
    Call 点击_关闭卡牌包 ()
    Call 点击_小房子 ()
    Call 提示 ("完成任务:每日广告碎片")

6.此时就已经完成功能,大概70行
image

posted @ 2023-06-24 22:45  爱吃菠萝包  阅读(150)  评论(0编辑  收藏  举报