Java开发游戏脚本(第五卷)

article/2025/9/21 6:59:41

游戏脚本开发第五卷

    • 前言介绍
    • 相关技术
    • 相关功能
    • 项目结构
    • 最后结语

前言介绍

本卷具体介绍脚本1.0,相关代码不再展示,该项目全部源码以及相关配置文件可在下方评论区留下QQ邮箱即可领取。

相关技术

  1. JavaFX,主要用于展示页面效果,该技术在JDK11被分离出系统库,如果是安装了JDK11及以上版本的电脑是无法直接运行的,需要下载它的包,eclipse对JavaFX有访问限制,需要把JRE系统库移除,然后重新导入系统库。笔者在B站看到的关于该技术的好教程推荐一下:点击跳转
  2. XML解析,主要用来存储数据与解析数据,因为小项目采用数据库比较麻烦。相关包为dom4j。
  3. 发送邮箱,用于脚本的异常运行提示,如果脚本运行异常可迅速地了解到情况,而不需要时常盯着电脑看,相关包为javax.mail。
  4. 播放音乐,功能同上,也是作为提示方式,相关包为jl。
  5. JNA,JNA提供一组Java工具类用于在运行期动态访问系统本地库,功能非常强大,主要用来操作窗口,相关包为jna,jna-platform。

相关功能

下图为主界面,取点扫描和图像识别这两种方式在前几卷已经讲解。

主界面
取点扫描原理:提前设置好判断点,取该点的位置与颜色,然后开启程序,程序获取目前屏幕的该点的位置与颜色,与判断点进行对比颜色,如果颜色相同则移动鼠标到该点,并且单击该点。
图像识别原理:提前截取图片,取图片的每个像素的颜色,然后开启程序,程序截取目前屏幕的图片,取屏幕图片的每个像素的颜色,然后对屏幕图片的每个像素点进行遍历对比,如果屏幕图片存在与截取图片的所有像素完全相同的区域,则移动鼠标到该截取图片的区域并且单击。
超时操作:程序设置了一个超时时间,如果在该时间内,程序没有操作鼠标,即可认定为出现了异常情况,程序将可以通过音乐通知(播放指定的音乐),邮件通知(向指定的QQ发送邮件),自动关机(通知完成后将会立刻关机)。程序会在出现异常情况后判断超时操作的功能勾选,这意味着你可以在任何时候都能修改你想要的超时操作。

下图为调整窗口界面,在前几卷已经讲解。

调整窗口界面
调整窗口主要是设置好游戏窗口在屏幕的位置与尺寸,因为取点扫描与图像识别都依赖于游戏窗口的位置与尺寸的固定,取点扫描的判断点是固定的,它需要游戏窗口固定在某个位置,图像识别的判断图片是固定大小的,一旦游戏窗口的尺寸发生变化,它就无法识别了。下面说说参数的意义

标题:游戏窗口的标题,如该脚本的标题就是鼠年大吉V1.0,你可以先在标题框中输入鼠,点击快捷选择即可迅速找到该进程标题。(类型:String)
X轴:你期待的游戏窗口的左上角出现在屏幕X轴的位置坐标。(类型:int)
Y轴:你期待的游戏窗口的左上角出现在屏幕Y轴的位置坐标。(类型:int)
宽度:你期待的游戏窗口的宽度大小。(类型:int)
高度:你期待的游戏窗口的高度大小。(类型:int)

下面是辅助功能的介绍:

清空记录可以清空你之前保存的所有窗口数据。
测试数据可以在你填写完所有文本框内容后进行一个尝试性测试调整游戏窗口功能,测试完成后,如果你满意的话可以点击保存数据,不满意的话可以继续调整测试。
保存数据可以保存所有文本框的数据到指定的XML文件中,如果XML文件里面已经存在该标题信息则会覆盖该信息,指定的XML文件名字为games.xml。

下图为取点对比界面,在前几卷已经讲解。

取点对比界面
取点对比主要是设置判断点的相关信息以及鼠标点击位置。前几卷的取点对比是比较死板的取点,本次取点采用全局鼠标监听技术,只需要在你移动鼠标到你想设置的该点位置,然后用鼠标滑轮滚动一下即可采取该点的位置以及颜色信息。相关代码在JiaoBen包->MouseMonitor.java文件中。

下面说说参数的意义

X: 判断点在屏幕上的X轴的位置坐标。(类型:int)
Y: 判断点在屏幕上的Y轴的位置坐标。(类型:int)
R: 判断点的颜色的RED分量。(类型:int)
G: 判断点的颜色的GREEN分量。(类型:int)
B: 判断点的颜色的BLUE分量。(类型:int)
Xmin: 判断点对比相同后,你期待鼠标移动坐标的X轴的最小值。(类型:int)
Ymin: 判断点对比相同后,你期待鼠标移动坐标的Y轴的最小值。(类型:int)
Xmax:判断点对比相同后,你期待鼠标移动坐标的X轴的最大值。(类型:int)
Ymax:判断点对比相同后,你期待鼠标移动坐标的Y轴的最大值。(类型:int)
Id: 备注信息,可用于描述判断点的信息,可不填。(类型:String)

: X,Y,R,G,B可以通过滑动鼠标滑轮迅速获得
Xmin,Xmax,Ymin,Ymax可以通过截图->保存数据迅速获得。

下面是辅助功能的介绍:

清空数据可以清空你之前保存的所有判断点数据。
保存数据可以保存所有文本框的数据到指定的XML文件中,指定的XML文件名字为points.xml。
截图可以迅速确定你期待鼠标移动坐标的范围,也可以真正的截取图片并且自动保存到图片库,你截取完图片后,回弹出保存数据与保存图片两个按钮,它们对应着上面的两个功能。

下图为用户设置界面,在前几卷已经讲解。

用户设置界面
用户设置主要用来设置用户的相关信息。下面说说参数的意义

扣扣账号:邮件通知的QQ账号,最好与微信绑定,然后通过微信的QQ邮箱提醒(公众号)实时获取脚本运行情况。(类型:String)
点击效率:脚本每次判断的休眠时间,数值越小,鼠标点击频率越高,系统负担越大。(类型:int)
最小间距:脚本操作鼠标的单击的按下与释放之间的最小时间差。(类型:int)
最大间距:脚本操作鼠标的单击的按下与释放之间的最大时间差。(类型:int)
通知时间:脚本判断出现异常情况的超时时间,如果在该时间内没有进行鼠标操作则会自动做出超时操作,如音乐通知,邮件通知,自动关机。(类型:int)
通知音乐:音乐通知的指定音乐,需要带后缀名.mp3。(类型:String)

下面是辅助功能的介绍:

清空记录可以清空你之前保存的用户数据。
保存数据可以保存所有文本框的数据到指定的XML文件中,指定的XML文件名字为user.xml。

项目结构

项目结构

config文件夹存储所有的XML文件(配置文件)
img文件夹作为图片库,存储PNG照片文件,UI.png作为窗口图标,截图保存的图片会保存到该文件夹里,如果用其他的截图工具,请把截取的图片放入该文件夹并且注意文件后缀格式。
music文件夹作为音乐库,存储MP3音乐文件,用户设置的通知音乐必须存在于该文件夹里。

最后结语

脚本1.0介绍完毕,下方评论留下QQ邮件领取该项目的源码,外部包以及配置文件。
下一卷开始讲解脚本2.0的相关功能,学业繁重,只能有时间再写博客了。
最后暗示–>>关注点赞评论!!!


点击前往下一卷内容



http://chatgpt.dhexx.cn/article/dG5JdNLF.shtml

相关文章

群控系统linux脚本,群控系统的自定脚本制作

做为沒有一切技术性累积的***游戏玩家,买这套醉适合,回家了依照使用说明一顿插线,插 好即玩,一小时内拿下,立刻就可以进行实际业务流程。这套系统软件现阶段关键对于手机0信,沒有各种各样目不暇接的作用&am…

Unity 脚本入门教程

原文:Introduction to Unity Scripting 作者:Georgi Ivanov 译者:kmyhy Unity 的许多功能都要通过它的富脚本语言 C# 来体现。你可以用它来处理用户输入,操作场景中的对象,碰撞检测,自动生成新的 GameOb…

2020年易语言调用大漠插件来制作游戏脚本教程

第一章 易语言基础 共6课时 1、关于易语言必须了解的基本知识 2、易语言基本组件(不包括超级列表框)讲解 3、易语言超级列表框详解 3、易语言核心支持库讲解之一 4、易语言核心支持库讲解之二 5、易语言模块制作和DLL制作 6、用制作的模块和DLL开发三个小…

Lua脚本教程

Lua脚本教程 一、数据类型1、常量、变量2、变量名:字母、数字、下划线(不能以数字开头)3、几种数据类型 二、运算符三、初识函数四、判断语句五、循环语句六、表七、高级函数与控制结构八、函数库1.基本库2.数学库,表库3.字符串库…

【按键精灵】一步两步脚本教程

使用版本:2014.06:19549 游戏地址:http://www.4399.com/flash/204661_2.htm 图1 4399一步两步 1 脚本前准备 一步两步在h5页面中的目标是通过点击1步/2步,避免掉下去的情况下得到高分,另外能吃到硬币有额外加分,那么…

梦幻西游打宝图脚本制作教程

第1节课-找游戏内存数据 第2节课-起号辅助开发实战 第3节课-辅助大体框架设计 第4节课-自动起号功能完善 第5节课-找各种功能的内存数据1 第6节课-点击小地图的算法分析 第7节课-点击小地图功能代码实现和完善 第8节课-背包物品遍历功能实现 第9节课-背包物品遍历功能完善 第10…

怎么制作游戏脚本_自动玩游戏,手游脚本究竟是怎么做的?

手游现在已经成为大家打发碎片化时间的一种很普遍的方式了,而有的人会由于种种愿意不能自己去玩,就希望有什么办法或者工具能帮助我们解决这个问题,不用人收着也能完成任务。 实现原理: 比如一个游戏的任务,你需要在不同的手机屏幕上进行一系列点击,滑动,甚至输入文本,…

软件开发过程与需求获取

为学堂在线清华大学《软件工程》部分视频笔记 8.1需求工程师 需求分析是软件工程中的重要步骤,是决定软件醒目成败的关键影响因素之一。因此,需求工程成为软件工程和系统工程重要的分支领域之一。在需求工程中,我们主要关注的事软件和系统需求…

软件需求分析-需求开发-需求分析与建模和需求描述

需求开发 C6需求分析与建模一、要点二、周期一:理清框架和脉络三、周期二:确定需求细节四、其他需求 C7需求描述需求描述的风格与格式 C8需求验证 C6需求分析与建模 一、要点 需求分析实际上是业务分析,也就是选择一种业务导向的线索将零散…

需求开发与需求管理

需求开发与需求管理概述 在我看来, 项目管理的日常活动包括了: 需求管理、故障管理、版本管理、任务管理。 需求管理贯穿了项目的大部分生命周期,故障管理则从第一个迭代版本出现直到产品维护阶段(包括内部故障与外部故障&#xf…

软件开发与过程管理——需求获取

目录 一. 需求获取概述 1.1 为什么要进行需求分析 1.2 需求获取的非平凡性 1.3 需求获取的主要活动 二. 需求获取的策略 2.1 需求获取的主动性策略 2.2 需求协商 三. 需求获取的主要方法 3.1 用户调查 3.2 文档分析 3.3 原型法 3.4 模型驱动 四. 软件开发及过程…

浅谈软件项目需求分析

这里不是写标准化的理论知识,而是想写写对软件需求工作的感受。 理论上的需求管理是要解决系统需求做什么的问题,以此界定系统功能和非功能性的内容。需求指的是由项目接受的或项目产生的产品和产品构件需要,包括由组织征集的对项目的…

软件工程之需求分析

现在人们越来越认识到软件工程在软件开发中的重要作用。目前国内软件在开发中还没有对软件开发的过程进行明确规定,文档不完整,也不规范,软件项目的成功往往归功于软件开发组的一些杰出个人或小组的努力。这种依赖于个别人员上的成功并不能为全组织的软件生产率和质量的提高…

如何写一份好的软件开发的需求分析

什么是需求分析? 通俗的讲,对用户的意图不断揭示和验叛的过程,要对经过系统可行性分析所确定的系统目标做更为详细的描述。 假如你是个建筑工程师,有个客户找你建一个鸡窝,这个时候要需要与客户沟通,来确定…

软件需求的三个层次——业务需求、用户需求和功能需求的区别

我们的软件产品或者项目,其需求都有三个层次,业务需求、用户需求和功能需求,除此之外,每个系统还有各种非功能需求。不是很了解的朋友,今天就和我和我们一起来了解一下吧!   下图是需求层次关系图&#…

运算符重载规则

1) 并不是所有的运算符都可以重载。能够重载的运算符包括&#xff1a; - * / % ^ & | ~ ! < > - * / % ^ & | << >> << >> ! < > && || -- , ->* -> () [] new new[] …

C++ 重载运算符

一、运算符重载 运算符重载是一种形式的C多态。 在C中&#xff0c;编译器有能力把一个由数据、对象和操作符共同组成的表达式&#xff0c;解释为对一个全局或成员函数的调用。该全局或成员函数被称为操作符函数&#xff0c;通过重定义操作符函数&#xff0c;可以实现针对自定…

C++重载决议

目录 前言一些与overload易混淆的概念override运算符重载 为什么需要重载决议&#xff1f;声明函数重载 什么是重载决议&#xff1f;什么不是函数重载&#xff1f; 重载决议之过程函数重载 && 函数模板before 重载决议more detailstype conversion(类型转换)rank&#…

重载

实质&#xff1a;重载的实质就是写一个重载函数语法&#xff1a;函数类型 operator 运算符名称 {对运算符的重载处理}说明&#xff1a;如果要对加号进行重载&#xff0c;则 “operator ” 就是函数名。方法&#xff1a; &#xff08;1&#xff09;成员函数法 定义&#xff1a…

重载运算符

输入带有空格的字符串 cin.getline(a[i]) 运算符重载的语法 定义一个重载的运算符与定义一个函数类似&#xff0c;只是这个函数的名称必须以operator开头。 运算符重载函数的一般形式为&#xff1a;类型 类名::operator 重载的运算符(参数表) {函数体 }参数的个数由以下两个…