安装python
这个就不做过多的赘述了。
安装adb
这里也不做过多赘述。
安装Anaconda
关于Anaconda是什么,这个网上基本都有。
https://www.jianshu.com/p/62f155eb6ac5
这里写的非常清楚了。
安装PIL
Python Imaging Library,提供强大的图像处理功能。打算用这个截图分析。
但是安装的过程中,发现不能装,原来并非指令pip install PIL,而是pip install Pillow
PIL具体用法如下了:
https://blog.csdn.net/Yuancccc/article/details/89645900
pycharm中使用anaconda
pycharm中使用anaconda部署python环境
https://blog.csdn.net/qq_29883591/article/details/78077244
使用tesseract
要控制游戏,就需要对游戏的界面进行识别
https://digi.bib.uni-mannheim.de/tesseract/
安装这个又是个大坑
https://blog.csdn.net/qq_38161040/article/details/90668765?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase
Python安装tesserocr遇到的一些问题:
https://blog.csdn.net/qq_35793285/article/details/81120440
Tesseract中文语言包
网上大部分的资源都是执行GitHub上,简直慢的不行。
当然也有人推荐https://github.com/tesseract-ocr/tessdata
以及https://digi.bib.uni-mannheim.de/tesseract/
通通行不通,我这暴脾气,直接去码云,找镜像。但是镜像需要全部下载,单个有点问题(知道原因的可以告诉我),历经千辛万苦,终于下载好了。
看到CSDN好多都是需要几十的积分,我就很烦。
问题:Tesseract couldn’t load any languages
环境变量设置错误,环境变量path中再加上安装位置。然后新建一个系统变量如下:
在cmd中输入tesseract -v, 如显示以下界面,则表示Tesseract安装完成且添加到系统变量中。
赶紧试一下:
tesseract D:\毕业设计相关\test.jpg p1 -l chi_sim
接下来就是在pycharm中使用啦,
tesseract安装完成后可以很方便的被Python调用,你需要安装两个包。
pip install pillow
pip install pytesseract
what?怎么还是不能用?
原来需要tesseract-ocr与python关联,从而使python能够调用Tesseract-OCR程序识别。
很好
啥也不说了,成就感爆棚好吧。
安装AndroidViewClient
之后就是安装AndroidViewClient,讲真,安装也是真的烦。因为据说他只兼容python2.7,。。。。
换个思路,我们看每次安装前,他要先找依赖包,我们先用镜像把依赖包下好,不就行了:
**注意:不能任由他自己下载,要随时注意安装他的依赖包,用清华的镜像很快就下好了。
**让他自己慢慢下,我知道今天肯定是完不成的。
主要命令就是
easy_install --upgrade androidviewclient -i +【镜像】
![需要注意的点,我都在图中标了
AndroidViewClient有个强大的工具,就是culebra,网上说Culebra可以帮助我们自动生成(录制)AndroidViewClient脚本。它提供了一个GUI,当我们通过GUI上操作手机,就会自动产生AndroidViewClient控制脚本模板,我们可以再在这个模板脚本基础上进行修改,实现更复杂的功能。具体介绍如下:
https://github.com/dtmilano/AndroidViewClient/wiki/culebra
不过说实话,实际运行起来有点。。。。。和我想象中的有点区别。
![!](https://img-blog.csdnimg.cn/20200614214257156.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Rhb2lzdDE5OTc=,size_16,color_FFFFFF,t_70)
运行起来实在是太慢了啊啊啊啊,见得最多的还是下图:
网上查了一下,可能是安卓版本的问题,毕竟现在安卓版本都蛮高了。
于是打算换一个思路。
获取手机截图
https://blog.csdn.net/m0_37868504/article/details/86246598
这篇文章描述的很详细,但是python复制粘贴也太不友好了吧,把tab和空格要统一,而且缩进也比较苛刻,佛了。
这里我小米手机,适合第二种方法,然后就开心的获取到啦。
这个时候就要图片匹配啦
open-cv里有模板匹配matchTemplate,可以帮我们判断,我们现在在什么位置。
顺带说下,opencv安装也是大坑命令是:pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
代码
def son():
#义子
i=0;
#进入
auto1.double_click(1, 1079, 1340)
#第一个义子
auto1.double_click(1, 515, 1170)
while not cancelTip():
i=i+1
auto1.double_click(1, 515, 1170)
if i>3:
i = 0
break
auto1.double_click(1, 392, 1250)
#第二个义子
auto1.double_click(1, 406, 1920)
auto1.double_click(1, 515, 1170)
while not cancelTip():
i = i + 1
auto1.double_click(1, 515, 1170)
if i > 3:
i = 0
break
auto1.double_click(1, 392, 1250)
#第三个义子
auto1.double_click(1, 586, 1920)
auto1.double_click(1, 515, 1170)
while not cancelTip():
i = i + 1
auto1.double_click(1, 515, 1170)
if i > 3:
i = 0
break
auto1.double_click(1, 392, 1250)
auto1.double_click(1, 1000, 250)
```#主要获取截图,比对,然后点击相应的坐标,主要是判断
#操作手机代码
def swipe_down(x1, y1, x2, y2):
print("滑动")
value=adb_path + "adb shell input swipe " + str(x1) + " " + str(y1) + " " + str(x2) + " " + str(y2)+" 100"
print(value)
os.system(value)
time.sleep(1)
def click_power():
os.system(adb_path + "adb shell input keyevent 26")
time.sleep(0.5)
#控制屏幕唤醒,并解锁
def click(x, y):
os.system(adb_path + "adb shell input tap " + str(x) + " " + str(y))
time.sleep(0.5)
def __init__(self,count):
self.count=count
def wakeup_sleep(self):
cmd="adb shell input keyevent 26"
os.popen(cmd)
time.sleep(1)
def autoWakeupSleep(self):
i=1
while (self.count >0):
print("唤醒/灭屏第%d次" %i)
i+=1
self.wakeup_sleep()
self.count=self.count - 1
print("亮屏完毕")
结束
终于结束了折腾了一天多,等做好的时候,对游戏也没多大兴趣了。。。。。
不过过程还是学到蛮多东西的。写完文章,再回头一看,这写得什么玩意,各位看官轻点喷啊。