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

前言介绍

本卷具体介绍脚本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的相关功能,学业繁重,只能有时间再写博客了。
最后暗示–>>关注点赞评论!!!


点击前往下一卷内容


猜你喜欢

转载自blog.csdn.net/weixin_44005360/article/details/106117298