涉及到的技术点:
- 图色/文字识别
- 键盘/鼠标操作
- 多线程技术
- 前台/后台(绑定)技术
一、图色/文字识别
图色:预先设定要找的图色,然后在指定的区域内寻找,返回对应的坐标
文字:预先设定好文字的点阵,然后用ocr技术,在区域内寻找,返回对应的点阵绑定的文字
ps:寻找需要一个时间过程,我们可以给寻找的函数添加一个循环查找并设置超时时间。
二、键鼠操作
模拟键鼠的操作
三、多线程技术
可以同时执行不同的任务,并且数据互通。
对于同一个窗口而言,一般最多只能同时进行一个操作,所以多线程是建立在不影响正常的操作的前提上,
比如自动打怪,需要一个线程去判断自身血量并自动加血,一个线程去寻找怪物,一个线程去监听寻找怪物线程的结果,去执行走位和打怪等。如果是单线程,也可以做到,但是效率上面会大打折扣。分线程是为了解决可以并行的业务的执行。
另外,多线程还可以解决一个异常的问题:
比如我们的脚本在按顺序的执行过程中,假设遇到一些预想不到的情况,脚本的进程卡在某个环境,那么我们有2个做法:
1、在主线程每个可能异常的环境,增加各种异常判断和处理,保障脚本可以继续运行下去
2、在主线程并不考虑各种异常,统一交给异常线程去处理,异常线程捕捉到异常后,先暂停或停止主线程(如有必要),然后处理异常,再启动主线程继续执行
好处代码比较优雅,可维护性和开发效率都会比较大的提升。
四、前后/后台技术
有前台与后台之分,如果是后台,不影响前台工作,并且可以多开多个鼠标同时操作,但是需要先绑定窗口。绑定后,所有的界面操作和坐标,都是基于绑定的窗口而言
三、