ADB基本操作及びゲーム自動対戦の実現
9672 ワード
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