autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法
1、簡(jiǎn)介
定時(shí) 實(shí)現(xiàn)對(duì)螞蟻森林能量的自動(dòng)拾取,以及幫指定好友澆水
2、開發(fā)環(huán)境搭建
語言: javaScript
開發(fā)工具:vcCode. auto.js
1)、手機(jī)安裝 auto.js
我們編寫的腳本就是在這個(gè)上面運(yùn)行
auto.js 官網(wǎng)
可以下載源碼自己編譯 apk,
同時(shí)官網(wǎng)提供開發(fā)文檔,幫助編寫開發(fā)
或者 下載別人已經(jīng)編譯好的 a'p'k
autojs 下載
安裝在手機(jī)上,并且設(shè)置無障礙服務(wù)
開啟音量上鍵關(guān)閉 運(yùn)行程序
2)、電腦安裝vcCode
為了編寫腳本方便 我們?cè)谑褂?vccode 來編寫代碼
vccode 官網(wǎng)下載
3)、vcCode 安裝autojs插件
4)、連接電腦端的 vcCode 和手機(jī)端的 autojs(1).開啟AutoJS插件
按 Ctrl+Shift+P
移動(dòng)光標(biāo)到命令A(yù)uto.js: Start Server,按回車鍵執(zhí)行該命令。
此時(shí)VS Code會(huì)在右上角顯示"Auto.js server running",即開啟服務(wù)成功。
(2) 查看電腦ip
電腦 cmd 運(yùn)行 ipconfig 命令,查找當(dāng)前ip
(3) autojs 手機(jī)連接電腦
auto.js app 設(shè)置里點(diǎn)擊連接電腦,輸入 電腦 ip
電腦顯示連接成功
3、編寫功能代碼
可以參考autojs 開發(fā)文檔 對(duì) 功能進(jìn)行開發(fā)
autojs 官方文檔
1) 、使用 vcCode 進(jìn)行代碼編寫
2) 使用 android sdk里面的 uiautomatorviewer.bat 抓取app 控件信息
3) 、運(yùn)行代碼
在電腦上按 F5 就能夠讓電腦上編寫的代碼直接在手機(jī)運(yùn)行
4) 保存電腦上的代碼到手機(jī)
按 Ctrl+Shift+P
移動(dòng)光標(biāo)到命令A(yù)uto.js: Sava On Device,按回車鍵執(zhí)行該命令。
就保存到了手機(jī)上的 autojs apk 里面 ,以后可以直接在這里面運(yùn)行。
5)自動(dòng)拾取螞蟻能量的參考代碼
auto();// 自動(dòng)打開無障礙服務(wù) // 以下數(shù)據(jù)需自己適配 var boundTopY = 560 ; //能量區(qū)域上 自己手機(jī)上的能量區(qū)域 需要更改本機(jī)適配 var boundBomY = 820; //能量區(qū)域下 var boundLeftX = 150; //能量區(qū)域左 var boundRightX = 900; //能量區(qū)域右 var enrgyBound = 80; //自己手機(jī)能量球大小 120 取 80 跨度 var energyPoint = [220,740,360,690,490,640,610,610,750,640,890,770] //自己手機(jī) 能量球位置 ,最多六個(gè) 需自己適配 x 坐標(biāo) /Y 坐標(biāo) 依次排列 var waterPointX = 980; //好友 澆水按鈕x坐標(biāo) 需自己適配 var waterPointY = 1520; //打開森林頁(yè)面 function openForestPage(){ launchApp("支付寶") //打開支付寶 text("首頁(yè)").waitFor() sleep(500) click("首頁(yè)") //點(diǎn)擊首頁(yè) text("螞蟻森林").waitFor() sleep(500) click("螞蟻森林") //點(diǎn)擊首頁(yè) //點(diǎn)擊螞蟻森林 } //拾取自己能量 function collectOwnEnergy(){ text("公益林").waitFor() sleep(1000) if ( null != textContains("收集能量").findOne(3000)) { var Energys = textContains("收集能量").find() //查找所有的可以搜集的能量 for (var i = 0; i< Energys.length;i++) { var energyBound = Energys[i].bounds() click(energyBound.centerX(), energyBound.centerY()); } } } //通過區(qū)域來點(diǎn)選能量球 function collectOtherEnergyFromBound(){ for (var x = boundLeftX ; x < boundRightX;x += enrgyBound ){ for (var y = boundTopY; y < boundBomY; y += enrgyBound ){ click(x,y) } } } //通過能量球的位置來點(diǎn)選 function collectOtherEnergyFromPoint(){ for (var i = 0; i<energyPoint.length;i += 2){ click(energyPoint[i],energyPoint[i+1]) } } //拾取他人或者自己能量 function collectOtherEnergy(){ //collectOtherEnergyFromBound() collectOtherEnergyFromPoint() } //點(diǎn)擊查看更多好友 function swipToMoreFriends(){ while(!text("查看更多好友").exists()) { swipe(device.width/2, device.height * (2/3), device.width/2, device.height/3, 1000); } text("查看更多好友").findOne().click() sleep(2000) while(!text("沒有更多了").exists()) { swipe(device.width/2, device.height * (5/6), device.width/2, device.height/6, 1000); } } //獲取好友的名字 function getFriendName(friend){ return friend.child(2).child(0).child(0).text() } //判斷點(diǎn)擊的是不是自己 function judgeIfSelf(friend){ var name = getFriendName(friend) if (name == "靜水魚游") { return true } else { return false } } //給好友澆水 function waterFriendEnergy(){ click(waterPointX,waterPointY) sleep(2000) if (text("澆水送祝福").exists()) { click("澆水送祝福") } sleep(500) } //拾取好友能量 function selectFriendsEnergy(){ // toast(11111) var friendsList = className("android.webkit.WebView").findOne().child(0).child(0).child(1) //獲取好友列表 for (var i = 0;i<friendsList.childCount() ;i++){ //toast(i) if(!judgeIfSelf(friendsList.child(i))){ var waterFriend = judgeWaterDesignatedFriends(friendsList.child(i)) //不給好友澆水 注釋掉 friendsList.child(i).click() sleep(2000) collectOtherEnergy() if (waterFriend) {waterFriendEnergy()} //不給好友澆水 注釋掉 back() sleep(1000) } } } //給指定澆水的好友 function judgeWaterDesignatedFriends (friend){ var waterFriendList = ["小豬佩奇","喜羊羊"] //給澆水的好友 數(shù)組 for (var i= 0;i< waterFriendList.length;i++) { if (waterFriendList[i] == getFriendName(friend)) { return true } } return false } //解鎖手機(jī) function unlock(){ if(!device.isScreenOn()){ //點(diǎn)亮屏幕 device.wakeUp(); sleep(1000); //滑動(dòng)屏幕到輸入密碼界面 swipe(device.width/2, device.height/2, device.width/2, device.height/5, 1000); sleep(1000); id("com.android.systemui:id/key1").findOne(2000).click() //根據(jù)密碼布局找到對(duì)應(yīng)按鍵 sleep(500) id("com.android.systemui:id/key2").findOne(2000).click() sleep(500) id("com.android.systemui:id/key3").findOne(2000).click() sleep(500) id("com.android.systemui:id/key4").findOne(2000).click() sleep(500) id("com.android.systemui:id/key5").findOne(2000).click() sleep(500) id("com.android.systemui:id/key6").findOne(2000).click() } } //退出程序 function endCollectEnergy(){ back();sleep(1000); back();sleep(1000); back();sleep(1000); home() } //unlock() openForestPage() collectOwnEnergy() swipToMoreFriends() selectFriendsEnergy() endCollectEnergy()
因?yàn)楹糜秧?yè)面螞蟻森林使用html 制作,不能用元素 獲取,所以不同機(jī)型需要根據(jù)自己機(jī)型設(shè)置。
具體位置 可以打開 自己開發(fā)者選項(xiàng) 里面的 指針位置 進(jìn)行定位
圖中方框 是自己機(jī)器設(shè)定的區(qū)域位置,和 能量球大小。
也可以自己定位 自己手機(jī)上 6 個(gè)能量球的位置,還有好友澆水位置這里就不展示。
此代碼會(huì)遍歷所有好友,尚不支持取判定好友是否有能量可收
文件參考:
https://github.com/hyb1996/Auto.js
到此這篇關(guān)于autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)autojs 螞蟻森林內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
js實(shí)現(xiàn)動(dòng)畫特效的文字鏈接鼠標(biāo)懸停提示的方法
這篇文章主要介紹了js實(shí)現(xiàn)動(dòng)畫特效的文字鏈接鼠標(biāo)懸停提示的方法,實(shí)例分析了javascript操作css的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03帶有定位當(dāng)前位置的百度地圖前端web api實(shí)例代碼
這篇文章主要介紹了帶有定位當(dāng)前位置的百度地圖前端web api實(shí)例代碼 的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-06-06基于Javascript實(shí)現(xiàn)文件實(shí)時(shí)加載進(jìn)度的方法
不知道大家有沒有發(fā)現(xiàn)在現(xiàn)在的移動(dòng)頁(yè)面上,有很多情況需要加載大量的資源。但是移動(dòng)端的訪問速度和pc還是有很大的差距,有些時(shí)候需要一些取巧的方式來提升用戶體驗(yàn),而實(shí)時(shí)顯示加載進(jìn)度就是其中一種。這篇文章就給大家分享了Javascript實(shí)現(xiàn)文件實(shí)時(shí)加載進(jìn)度的方法。2016-10-10javascript設(shè)計(jì)模式 – 享元模式原理與用法實(shí)例分析
這篇文章主要介紹了javascript設(shè)計(jì)模式 – 享元模式,結(jié)合實(shí)例形式分析了javascript享元模式相關(guān)概念、原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-04-04學(xué)習(xí)javascript,實(shí)現(xiàn)插入排序?qū)崿F(xiàn)代碼
首先新建一個(gè)空列表,用于保存已排序的有序數(shù)列(我們稱之為"有序列表")。從原數(shù)列中取出一個(gè)數(shù),將其插入"有序列表"中,使其仍舊保持有序狀態(tài)。2011-07-07在多個(gè)頁(yè)面使用同一個(gè)HTML片段的代碼
有一個(gè)比較復(fù)雜的HTML片段(A),如果把這個(gè)HTML片段嵌入到其他頁(yè)面中(B,C,D....)。 問題的關(guān)鍵是在HTML片段中有大量的JavaScript邏輯需要處理,比如說分頁(yè),點(diǎn)擊事件響應(yīng)等。2011-03-03BootStrap中Tab頁(yè)簽切換實(shí)例代碼
這篇文章主要介紹了BootStrap中Tab頁(yè)簽切換實(shí)例代碼的相關(guān)資料,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-05-05實(shí)現(xiàn)高性能javascript的注意事項(xiàng)
JavaScript代碼在web應(yīng)用程序中經(jīng)常用到,但是很多開發(fā)者忽視了一些性能方面的知識(shí),如何編寫高性能javascript代碼呢?接下來,小編跟大家一起學(xué)習(xí)2019-05-05使用Three.js實(shí)現(xiàn)太陽(yáng)系八大行星的自轉(zhuǎn)公轉(zhuǎn)示例代碼
這篇文章主要給大家介紹了關(guān)于如何使用Three.js實(shí)現(xiàn)太陽(yáng)系八大行星的自轉(zhuǎn)公轉(zhuǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04