1. 程式人生 > >女朋友老是埋怨我技術不行,於是我做了個輔助工具。

女朋友老是埋怨我技術不行,於是我做了個輔助工具。

事件起因

女朋友平時酷愛王者榮耀,所以她沒事的時候也喜歡拉拉我打兩把,這不前段時間還買了一個王者榮耀的李白聯名口紅向我炫耀,心裡不免有點吃醋,一個3D人物能有真人賞心悅目嗎?於是我暗下決心,決定苦練農藥技巧,在她面前秀上一把。其實對於王者榮耀,我的技術也不算太差,和她一起玩的時候總能拿到MVP,就是贏不了,究其原因,我覺得是我女朋友的問題,因為遊戲過程中經常出現我一個人單挑三人,就差她殘血補刀,奈何她總是喜歡喵在草叢或者撒腿就跑,整局下來還嫌棄我菜,說我手速不行,在我被群毆的時候,總希是望自己擁有不死之身,於是就有了秒換復活甲的想法。。。

準備工作

  • 這次開發依舊使用的AutoJs來進行指令碼的開發。
  • 測試工具是本人的OnePlus 8T。

程式邏輯

  • 在開發過程中,由於AutoJs抓取不了遊戲介面的佈局控制元件,所以只能採取模擬人手點選的方式來進行製作。

執行測試

  • 測試截圖:

  • 體驗地址:https://wwa.lanzous.com/imPQKigp0fe

其他

  • 使用者使用前需要開啟懸浮窗許可權,並且需要在橫屏下圖示才能顯示出來,可以長按移動進行移動,注意不要點選到圖示。

  • 缺點:其他手機在使用的過程中,相應的引數可能需要重新進行調整,否則會出現點選錯位的情況。

程式碼

var window = floaty.window(
    <frame id="logo" w="60" h="50" alpha="0.8" >

        <button   id="move" text=" 移動 " w="9" h="40" bg="#77ffffff" textSize="10sp"  marginLeft="40" padding="0 -5 0 0" visbility="invisible" alpha="0.5"/>
        <img id="img_logo" w="40" h="40" circle="true" src="https://s1.ax1x.com/2020/10/14/0IsInx.png" />
    </frame>
)
window.setPosition(1913,239);

setInterval(() => {
}, 1000);

let wx, wy, downTime, windowX, windowY;
window.move.setOnTouchListener(function (view, event) {
    switch (event.getAction()) {
        case event.ACTION_DOWN:
            wx = event.getRawX();
            wy = event.getRawY();
            windowX = window.getX();
            windowY = window.getY();
            downTime = new Date().getTime();
            return true;
        case event.ACTION_MOVE:
            // 如果按下的時間超過 xx 秒判斷為長按,調整懸浮窗位置
            if (new Date().getTime() - downTime > 300) {
                window.setPosition(windowX + (event.getRawX() - wx), windowY + (event.getRawY() - wy));

            }
            return true;
        case event.ACTION_UP:
            // 手指彈起時如果偏移很小則判斷為點選
            if (Math.abs(event.getRawY() - wy) < 30 && Math.abs(event.getRawX() - wx) < 30) {
                toastLog(" 長按調整位置 ")
            }
            return true;
    }
    return true;
});


window.img_logo.click(() => {
    threads.start(function(){
        click(173,489);//點選金幣
        sleep(5);
        click(319,629);//點選防禦
        sleep(5);
        click(1659,650);//點選復活甲
        sleep(15);
        click(1933,862);//點預購
        sleep(15);
        click(771,927);//點選第一個
        sleep(15);
        click(1963,874);//出售
        sleep(20);
        click(1990,110);//點選x
        sleep(20);
        click(276,436);//點選購買裝備
       

    });
    
});