autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法
1、簡介
定時(shí) 實(shí)現(xiàn)對螞蟻森林能量的自動(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
為了編寫腳本方便 我們在使用 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會在右上角顯示"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ā)文檔 對 功能進(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; //打開森林頁面 function openForestPage(){ launchApp("支付寶") //打開支付寶 text("首頁").waitFor() sleep(500) click("首頁") //點(diǎn)擊首頁 text("螞蟻森林").waitFor() sleep(500) click("螞蟻森林") //點(diǎn)擊首頁 //點(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ù)密碼布局找到對應(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)楹糜秧撁嫖浵伾质褂胔tml 制作,不能用元素 獲取,所以不同機(jī)型需要根據(jù)自己機(jī)型設(shè)置。
具體位置 可以打開 自己開發(fā)者選項(xiàng) 里面的 指針位置 進(jìn)行定位
圖中方框 是自己機(jī)器設(shè)定的區(qū)域位置,和 能量球大小。
也可以自己定位 自己手機(jī)上 6 個(gè)能量球的位置,還有好友澆水位置這里就不展示。
此代碼會遍歷所有好友,尚不支持取判定好友是否有能量可收
文件參考:
https://github.com/hyb1996/Auto.js
到此這篇關(guān)于autojs 螞蟻森林能量自動(dòng)拾取即給指定好友澆水的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)autojs 螞蟻森林內(nèi)容請搜索腳本之家以前的文章或繼續(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)頁面上,有很多情況需要加載大量的資源。但是移動(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實(shí)現(xiàn)高性能javascript的注意事項(xiàng)
JavaScript代碼在web應(yīng)用程序中經(jīng)常用到,但是很多開發(fā)者忽視了一些性能方面的知識,如何編寫高性能javascript代碼呢?接下來,小編跟大家一起學(xué)習(xí)2019-05-05使用Three.js實(shí)現(xiàn)太陽系八大行星的自轉(zhuǎn)公轉(zhuǎn)示例代碼
這篇文章主要給大家介紹了關(guān)于如何使用Three.js實(shí)現(xiàn)太陽系八大行星的自轉(zhuǎn)公轉(zhuǎn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Three.js具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04