花了三个小时写的蚂蚁森林自动收取能量的脚本(基于auto.js软件编写)有源码

话不多说,先上个图,基本工作原理就是仿人工进行操控。
在这里插入图片描述
我本来是想着弄一个完整的动图,但是因为只能上传5M以内的图片,也是删了又删,最后就这样了,不过关键点都有。
这个脚本的功能就是偷能量,采摘自己能量的我还没写,因为最近出不了门,也没能量,就先懒着写了,它可以基于控件,以及截取图形进行模式匹配来找到需要找到的图片的位置,返回值时point。
首先就是

launch([AppName]); 
//这个是后面跟着应用名字,比如支付宝,QQ,微信等

这就可以打开应用软件了,已经向偷取能量迈出了第一步。
接下来是利用坐标来找到蚂蚁森林的,当然,截取图片,然后进行图片匹配来打开蚂蚁森林,我先介绍一下基于坐标的

click(x, y);
//就是屏幕坐标的x轴,以及y轴的坐标

click函数是模拟点击的,它可以进行一次点击。
接下来就是打开排行榜了,我这里用的是排行榜这个text来作为唯一标识符
,代码如下

text("排行榜").findOne().click();
//找到控件属性text为排行榜的控件,然后进行点击

这样就能够进入到排行榜了。

以下是一开始的全部代码:

setTimeout(function(){
auto();
launchApp("支付宝");   //打开支付宝
sleep(3000);
click(810,444,1080,650);  //点击蚂蚁森林
// text("蚂蚁森林").className("android.widget.TextView").findOne().click();
sleep(3000);

className("android.webkit.WebView").findOne().scrollForward();   //滑动屏幕
sleep(2000);
text("总排行榜").findOne().click();   //找到排行榜并且打开
sleep(200);
className("android.webkit.WebView").findOne().scrollForward();  //滑动屏幕
text("查看更多好友").findOne().click(); //查看更多好友
sleep(2000);
while(1){
var sc = true;
//找到有能量的位置
while(1){
requestScreenCapture();
sleep(3000);
var cz = images.read("/storage/emulated/0/jb/cz.jpg");  //用这个图片在大图里找
var p = findImage(captureScreen(), cz, {    //从大图里找到小图
    threshold: 0.9
});

if(p){       //若找到则为true,否则为false
    press(p.x, p.y, 5);
    break;
}else{
    sc = className("android.support.v7.widget.RecyclerView").findOne().scrollForward();   //若为false则滑动窗口
    requestScreenCapture();
    sleep(3000);
    var sy = images.read("/storage/emulated/0/jb/20.jpg");
    var u = findImage(captureScreen(), sy, {
        threshold: 0.9
    })
    if(u)
    swipe(500, 350, 500, 300, 3000);
    

    var my = images.read("/storage/emulated/0/jb/my.jpg");
    var m = findImage(captureScreen(), my, {
        threshold: 0.9
    })
    if(m){             //返回并到主界面
        var i = 0;
        for(i=0; i<4; ++i)
        back();
        // back();
        // back();
        // back();
        // back();
        home();
        exit();
    }
}
}

if(sc){      //若窗口为true,则执行,否则break
//收取能量
// sleep(200);
requestScreenCapture();  //获取屏幕截图功能
sleep(3000);
 var sq = images.read("/storage/emulated/0/jb/sq.jpg");  // 给定小图标
 var q = findImage(captureScreen(), sq, {   //在截图中寻找小图标
    threshold: 0.8
});
requestScreenCapture();
sleep(3000);
 var sq1 = images.read("/storage/emulated/0/jb/sq1.jpg");
 var q1 = findImage(captureScreen(), sq1, {
    threshold: 0.8
 })
 if(q)
toast(q);
if(q1)
toast(q1);    
sleep(3000);
while(1){    //找出所有未收取的能量,然后收取
if(q){
    press(q.x, q.y, 5);
    requestScreenCapture();
    sleep(3000);
    var sq = images.read("/storage/emulated/0/jb/sq.jpg");
    var q = findImage(captureScreen(), sq, {
    threshold: 0.8
    });
    toast(q);
    sleep(3000);
}

if(q1){
    press(q1.x, q1.y, 5);
    // if(q1)
    // press(q1.x, q1.y, 5);
    requestScreenCapture();
    sleep(3000);
    var sq1 = images.read("/storage/emulated/0/jb/sq1.jpg");
    var q1 = findImage(captureScreen(), sq1, {
    threshold: 0.8
    });
    toast(q1);
    sleep(3000);
}
if(!q)
if(!q1){
    toast("没有找到");
    break;
}
}

sleep(300);
back();
sleep(1000);
}else{
    break;
}
}
}, 1000);

以后还会写一些其他的脚本代码,如果有想要源码的可以关注我,然后私信我,我发给你源代码。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值