zoukankan      html  css  js  c++  java
  • 关于游戏脚本的编写思路

    涉及到的技术点:

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

    一、图色/文字识别

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

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

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

    二、键鼠操作

    模拟键鼠的操作

    三、多线程技术

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

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

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

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

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

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

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

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

    四、前后/后台技术

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

    三、

    暗夜之中,才见繁星;危机之下,暗藏转机;事在人为,为者常成。
  • 相关阅读:
    使用iconv编程进行字符集转换
    Unity3D学习之路 C#学习笔记(一)
    跨平台的游戏客户端Socket封装
    TCP长连接与短连接的区别
    C++中的long long和__int64类型
    基于cocos2dx的游戏客户端优化
    Android NDK带来什么
    strcpy_s与strcpy的比较
    英文字母和中文汉字在不同字符集编码下的字节数
    socket的read和recv函数的区别
  • 原文地址:https://www.cnblogs.com/zenghansen/p/14973560.html
Copyright © 2011-2022 走看看