上次已经发过一个视频了,感兴趣的可以看看BV1KK4y1t7p8
这次对代码进行了优化,不用再去一个个找坐标了,对事件也进行了优化
代码直接复制即可,需要电脑上安装python和adb环境,可以自己百度安装,不是很麻烦
这段选择从第三章开始,因为前两章新手教程太多,且无法跳过,不适合用程序打
···#代码如下
import os
from PIL import Image
import time
import random
# import tk_part
next_space=2145,495
s=1909,911 #挑战和战斗开始坐标
t=1917,977 #结束后下一步坐标
frist_space=513,365
num=0
delay=60
# x=[100,513,629,813,1057,1021,1229,1333,1493,1605,1593,1877,1937]
# y=[100,365,601,453,469,685,793,561,397,533,749,709,437]
def start():
os.system('adb shell am start -n com.bilibili.priconne/com.bilibili.princonne.permission.PermissionActivity')
time.sleep(10)
# def qq_screen():
# os.system('adb shell /system/bin/screencap -p /sdcard/screenshot.png')
# os.system('adb pull /sdcard/screenshot.png C:/Users/86151/Desktop/学习/adb_test')
# time.sleep(1)
def touch(x):
os.system('adb shell input tap {} {}'.format(x[0],x[1]))
time.sleep(1)
def evertouch(): #防止出现事件导致程序运行错误,设置屏幕一直点击
for i in range(0,delay):
if i%2:
os.system('adb shell input tap 1185 597')
else:
os.system('adb shell input tap 2287 200')
time.sleep(0.5)
def begin():
touch(s)
touch(s)
evertouch()
touch(t)
time.sleep(3)
touch(t)
time.sleep(3)
def main():
global num
touch(frist_space)
for i in range(0,num):
touch(next_space)
begin()
num=num+1
main()
if __name__ == "__main__":
main()
···#这里截止
下一步优化还没有做好:
想法如下:增加可视化界面,增强交互能力和实用性
对输入的数据进行处理,并跳到输入的那一关进行程序的执行
有个不会的地方:
如果可以求大佬帮帮萌新
无法直接进行章的跳转,因为每一章没有固定坐标,每一章的每一关坐标都不同
例如:当我页面停在第三章时,我要跳到第一章,只能点击箭头进行跳转,只要确定每一章的第一关即可,但是程序并不知道我停在第几章,所以不确定要点几次,不知道怎么办