ADB基本操作及实现游戏自动对战

ADB基本操作及实现游戏自动对战

基础知识

首先需要在电脑上装ADB,数据线连接手机,并调成USB调试模式,在命令行可以测试以下命令:

// 查看已连接的设备
adb devices
// 连接
adb connect 192.168.31.198:5555
// 点击
adb shell input tap [位置]
// 滑动
adb shell input swipe [位置] [位置] [时间]

[屏幕上的位置坐标]
[时间 单位为ms]

实现游戏自动对战

查看设备是否连上:

C:\Users\Administrator>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
a8278daa        device

使用Jupyter Notebook运行程序

C:\Users\Administrator>jupyter notebook

打开并运行Demo
该程序是事先写好的,实现了在“野蛮人大作战”游戏中实现对战N次,在游戏中会四处乱走乱打,游戏结束自动开启下一局,可用来刷游戏次数。

#野蛮人大作战-自动对战n次的完整代码
import os
import random
import time
btn_yule="1750 800"
btn_duiz="1870 970"
btn_end="1988 1010"
btn_next="2010 1000"
# 连接手机
os.system("adb connect 192.168.31.198:5555")
def tap(btn):
    os.system("adb shell input tap {}".format(btn))
    
posC="500 800"
posR="800 800"
posL="200 800"
posD="500 1000"
posU="500 500"

def swipe(pos1,pos2,dur):
    os.system("adb shell input swipe {} {} {}".format(pos1,pos2,dur))
    
def right():
    swipe(posC,posR,3000)
    tap(btn_duiz)
def left():
    swipe(posC,posL,3000)
    tap(btn_duiz)
def down():
    swipe(posC,posD,3000)
    tap(btn_duiz)
def up():
    swipe(posC,posU,3000)
    tap(btn_duiz)
###############自动对战n次##########################    
n=3
while(n>0):
    tap(btn_duiz)
    tap(btn_duiz)
    since=time.time()
    now=time.time()
    while(now<since+360):
        a=random.random()
        if a<0.2:
            right()
        elif a<0.5:
            left()
        elif a<0.75:
            down()
        else:
            up()
        now=time.time()
    time.sleep(5)
    tap(btn_end)
    time.sleep(5)
    tap(btn_next)
    time.sleep(3)
    tap(btn_next)
    time.sleep(5)
    tap(btn_next)
    tap(btn_next)
    n=n-1

你可能感兴趣的:(ADB基本操作及实现游戏自动对战)