原理:
由于每次通过冒险模式都会有金币,而这个动作十分重复,连图像识别都不需要,可以考虑使用程序代替人工。
简单的说是重复以下的步骤:
- 界面打开至挑战关卡:陨落的废都 - 魔女回忆 【点击下一步】
- 点击开始闯关
- 进入挑战界面。【点击右上角-自动-等待挑战结束】
- 进入挑战完成界面。【点击屏幕继续】
- 进入关卡奖励界面。【点击再次挑战】
- 再次闯关
我们需要一个程序代替我们手工点点点,可以想到使用安卓sdk里的adb工具,向手机发送点击命令。
adb shell input tap x y
就是这个命令,如果 在cmd命令行里执行一下 adb shell input tap 500 500
就会在手机500,500位置模拟点击一下。
环境准备:
下载安卓的platform-tools:
http://www.androiddevtools.cn/
访问这个网址
找到这里
根据你的操作系统下载完了之后解压
然后配置环境变量:
在Path的最后加上刚刚你解压出来的目录,D:\platform-tools 是我刚刚解压的目录。与前面的字符串要用英文的分号;隔开
代码:
打开IDE粘贴以下代码:
# -*- coding: utf-8 -*-
import os
from time import sleep
repeat_times = 600
def tap_screen(x, y):os.system('adb shell input tap {} {}'.format(x, y))
if __name__ == '__main__':for i in range(repeat_times):if(i > 0):tap_screen(2489, 1307) # 再次挑战print("再次挑战开始")sleep(5)tap_screen(2155, 1218)#闯关print("开始闯关")sleep(12)tap_screen(2764, 53)#自动print("自动按钮点击")sleep(50)tap_screen(500,500)#点击屏幕继续print("点击屏幕继续")sleep(5)tap_screen(2489, 1307) # 再次挑战sleep(1)print(i)
os.system 的效果就和你在cmd里执行命令一样
由于现在奇怪比例的手机层出不穷,我自己用的18.5:9的三星S8,所以把所有坐标都写死了,可以根据自己手机修改上面的各种坐标及休眠时间。在手机的开发者模式里打开显示指针位置,就会显示你当前触摸的区域的坐标