关于游戏脚本的编写思路

涉及到的技术点:

  1. 图色/文字识别
  2. 键盘/鼠标操作
  3. 多线程技术
  4. 前台/后台(绑定)技术

一、图色/文字识别

图色:预先设定要找的图色,然后在指定的区域内寻找,返回对应的坐标

文字:预先设定好文字的点阵,然后用ocr技术,在区域内寻找,返回对应的点阵绑定的文字

ps:寻找需要一个时间过程,我们可以给寻找的函数添加一个循环查找并设置超时时间。

二、键鼠操作

模拟键鼠的操作

三、多线程技术

可以同时执行不同的任务,并且数据互通。

对于同一个窗口而言,一般最多只能同时进行一个操作,所以多线程是建立在不影响正常的操作的前提上,

比如自动打怪,需要一个线程去判断自身血量并自动加血,一个线程去寻找怪物,一个线程去监听寻找怪物线程的结果,去执行走位和打怪等。如果是单线程,也可以做到,但是效率上面会大打折扣。分线程是为了解决可以并行的业务的执行。

另外,多线程还可以解决一个异常的问题:

比如我们的脚本在按顺序的执行过程中,假设遇到一些预想不到的情况,脚本的进程卡在某个环境,那么我们有2个做法:

1、在主线程每个可能异常的环境,增加各种异常判断和处理,保障脚本可以继续运行下去

2、在主线程并不考虑各种异常,统一交给异常线程去处理,异常线程捕捉到异常后,先暂停或停止主线程(如有必要),然后处理异常,再启动主线程继续执行

好处代码比较优雅,可维护性和开发效率都会比较大的提升。

四、前后/后台技术

有前台与后台之分,如果是后台,不影响前台工作,并且可以多开多个鼠标同时操作,但是需要先绑定窗口。绑定后,所有的界面操作和坐标,都是基于绑定的窗口而言

三、

暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。
原文地址:https://www.cnblogs.com/zenghansen/p/14973560.html