Java实现碧蓝航线连续作战
目录
- 一.实现功能
- 二.主要思路
- 三.代码实现
- 四.用exe4j生成.exe程序
- 五.最终效果
- 六.代码开源
一.实现功能
主线图作战结束到结算页自动点击再次前往
二.主要思路
- 判断是否进入了结算界面:记录结算界面某个像素点的RGB值,每隔3秒对这个像素点进行比对
- 移动鼠标点击再次前往:Java提供的Robot类
三.代码实现
- MainFrame.java
主要实现系统托盘的图标,右键菜单栏,菜单项的响应事件
package com.simple.azurlane.view;import com.simple.azurlane.auto.MainLine;import javax.imageio.ImageIO;
import java.awt.*;
import java.io.IOException;
import java.util.Objects;public class MainFrame {public MainFrame() {//系统托盘SystemTray systemTray = SystemTray.getSystemTray();//菜单栏PopupMenu pop = new PopupMenu();MenuItem control = new MenuItem("start");MenuItem exit = new MenuItem("exit");pop.add(control);pop.addSeparator();pop.add(exit);control.addActionListener(e -> {if (control.getLabel().equals("start")) {MainLine.start();control.setLabel("stop");} else {MainLine.stop();control.setLabel("start");}});exit.addActionListener(e -> System.exit(0));try {TrayIcon trayIcon = new TrayIcon(ImageIO.read(Objects.requireNonNull(MainFrame.class.getClassLoader().getResourceAsStream("azurlane.jpg"))), "碧蓝航线", pop);trayIcon.setImageAutoSize(true);trayIcon.setToolTip("碧蓝航线");systemTray.add(trayIcon);} catch (IOException | AWTException e) {e.printStackTrace();}}public static void main(String[] args) {new MainFrame();}
}
- MainLine.java
主要实现像素点的比对,自动移动鼠标点击
package com.simple.azurlane.auto;import java.awt.*;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;public class MainLine {private static ScheduledExecutorService scheduledService;private static final Properties properties = new Properties();private static Robot robot;static {try {robot = new Robot();properties.load(MainLine.class.getClassLoader().getResourceAsStream("config.properties"));} catch (AWTException | IOException e) {e.printStackTrace();}}static int z = Integer.parseInt(properties.getProperty("z"));static int x1 = Integer.parseInt(properties.getProperty("x1"));static int y1 = Integer.parseInt(properties.getProperty("y1"));static int x2 = Integer.parseInt(properties.getProperty("x2")) / z;static int y2 = Integer.parseInt(properties.getProperty("y2")) / z;static List<String> rl = Arrays.asList(properties.getProperty("r").split(","));static List<String> gl = Arrays.asList(properties.getProperty("g").split(","));static List<String> bl = Arrays.asList(properties.getProperty("b").split(","));private static void autoWork() {Color pixelColor = robot.getPixelColor(x1, y1);if (validatePixelColor(rl, gl, bl, pixelColor)) {robot.mouseMove(x2, y2);robot.mousePress(KeyEvent.BUTTON1_MASK);robot.delay(200);robot.mouseRelease(KeyEvent.BUTTON1_MASK);robot.delay(200);robot.mouseMove(0, 0);}}/*** 校验一组颜色是否与之指定像素点颜色匹配* @param pixelColor 像素点颜色* @return true/false*/private static boolean validatePixelColor(List<String> rl, List<String> gl, List<String> bl, Color pixelColor) {for (int i = 0; i < rl.size(); i++) {if (String.valueOf(pixelColor.getRed()).equals(rl.get(i)) && String.valueOf(pixelColor.getGreen()).equals(gl.get(i)) && String.valueOf(pixelColor.getBlue()).equals(bl.get(i))) {return true;}}return false;}public static void start() {scheduledService = Executors.newScheduledThreadPool(1);scheduledService.scheduleAtFixedRate(MainLine::autoWork, 0, 3, TimeUnit.SECONDS);}public static void stop() {scheduledService.shutdownNow();scheduledService = null;System.gc();}
}
- config.properties
#识别的像素点位置
x1=1600
y1=276
#鼠标点击位置
x2=1740
y2=1294
#匹配的rgb颜色
r=99,90,90
g=130,134,121
b=189,198,198
#分辨率-缩放比例
z=2
四.用exe4j生成.exe程序
具体参考我的这篇文章exe4j将jar包打成exe程序
五.最终效果
六.代码开源
所有代码已上传我的github仓库
相关文章:
Java实现碧蓝航线连续作战
目录一.实现功能二.主要思路三.代码实现四.用exe4j生成.exe程序五.最终效果六.代码开源一.实现功能 主线图作战结束到结算页自动点击再次前往 二.主要思路 判断是否进入了结算界面:记录结算界面某个像素点的RGB值,每隔3秒对这个像素点进行比对 移动鼠标…...
Docker笔记
文章目录1.docker为什么会出现2.docker是什么3.传统虚拟机和容器的对比3.1虚拟机3.2容器虚拟化技术3.3两者对比3.4为什么Docker会比VM虚拟机快?4.docker能干嘛6.docker的应用场景7.docker三要素一:镜像(Image)二:容器&…...
情人节使用AI TOOL来创建一个甜言蜜语的女伴
一、首先使用chatgpt生成一段情侣间的对话,需要反复几次,达到满意的程度,然后将女方的话归在一起。 这是一个情侣私下谈话的场景,女方表示对男朋友精心准备的情人节安排和礼物表示很满意 二、 打开网站:https://lexic…...
G-GhostNet(IJCV 2022)原理与代码解析
paper:GhostNets on Heterogeneous Devices via Cheap Operationscode:https://github.com/huawei-noah/Efficient-AI-Backbones/blob/master/g_ghost_pytorch/g_ghost_regnet.py前言本文提出了两种轻量网路,用于CPU端的C-GhostNet和用于GPU端…...
Ethercat系列(5)TWcat3激活过程的协议分析(续1)
顺序写系统时间偏移从-》主顺序写时间延迟主-》从从-》主顺序写分布式时钟启动主-》从从-》主读多重写系统时间主-》从从-》主顺序写应用层控制主-》从从-》主顺序读错误计数器主-》从从-》主顺序读应用层状态主-》从从-》主顺序读应用层,广播写错误计数器主-》从从…...
QT入门Input Widgets之QScrollBar
目录 一、界面布局功能 1、界面位置介绍 2、控件界面基本属性 2.1 horizontalScrollBar界面属性 3、样式设置 此文为作者原创,创作不易,转载请标明出处! 一、界面布局功能 1、界面位置介绍 QScrollBar主要分为两种,一种垂直…...
【ML】基于机器学习的心脏病预测研究(附代码和数据集,多层感知机模型)
写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大努力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 之前创作过心脏病预测研究文章如下: 【ML】基于机器学习的心脏病预测研究(附代码和数据集,逻辑回归模型) 【ML】基于机…...
工序排序问题--约翰逊法精讲
什么是约翰逊法?约翰逊法是作业排序中的一种排序方法。选出最短加工时间i*,若最短加工时间有多个,任选1个.若i*出现在机床1,它对应的工件先安排加工,否则放在最后安排,安排后划去该工件,重复上两个步骤,直…...
WebDAV之葫芦儿·派盘+网盘精灵
网盘精灵 支持WebDAV方式连接葫芦儿派盘。 推荐一款让您的iPhone、iPod、iPad 变成WebDav客户端的软件,支持从WebDav服务器连接葫芦儿派盘服务进行上传和下载件。 网盘精灵让您的iPhone、iPod、iPad 变成WebDav客户端。功能:WebDav操作、文件共享、本地文件管理...
计算机网络期末知识点总结
计算机网络期末知识点总结第四章—网络层:数据面4.1概述4.2虚电路和数据报网络4.3路由器工作原理4.4网际协议:因特网中的转发和编址第五章 网络层:控制面5.1路由选择算法5.2路由器中的路由选择5.3广播和多播路由选择第六章 链路层(…...
【Vue3 组件封装】vue3 轮播图组件封装
文章目录轮播图功能-获取数据轮播图-通用轮播图组件轮播图-数据渲染轮播图-逻辑封装轮播图功能-获取数据 目标: 基于pinia获取轮播图数据 核心代码: (1)在types/data.d.ts文件中定义轮播图数据的类型声明 // 所有接口的通用类型 export typ…...
电力国家(行业)标准目录
1、3~63kV交流高压负荷开关 GB 3804-90 代替 GB 3804-882、电气装置安装工程35kV及以下架空电力线路施工及验收规范Code for construction and acceptance of 35kVand umder over head power levels electricequipment installation engineeringGB50173—923、带电作…...
如何实现倒序输出
问题 如何实现字符串的大小写转换并倒序输出。 方法 采用Java自带的类方法进行倒序。 package homework4; public class Blog09 { public static void main(String[] args) { String a "HelloWord"; String a2 a.toUpperCase(); String a3 …...
遗留系统的自动化测试策略和实践方法
1 什么是遗留系统 遗留系统是一种旧的方法、旧的技术、旧的计算机系统或应用程序,属于或与以前的、过时的计算机系统有关,但仍在使用中。通常,将系统称为“遗留系统”意味着它可能已经过时或需要更换,但是系统还在对外提供服务,还在不断的迭代,有新的需求不断的交付。Ma…...
【Android】系统源码下载及编译
源码及编译 步骤 1:创建一个空目录来存放源码: mkdir aosp cd aosp步骤 2:获取最新版本的 repo 并签出 android-8.1.0_r1 分支: repo init -u https://android.googlesource.com/platform/manifest -b android-8.1.0_r1其中&am…...
基于HTML实现浪漫情人节表白代码(附源代码)
🤵♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞Ǵ…...
PCL 平面拟合——RANSAC
文章目录 一、基本思想二、代码示例1、参数选择2、核心代码3、完整代码4、结果展示三、关于 RANSAC 的一些思考参考文献一、基本思想 随机抽样一致性算法RANSAC(Random sample consensus)是一种迭代的方法,从一系列包含有离群值的数据中计算数学模型参数的方法。RANSAC算法本…...
【Linux之Shell脚本实战】监控系统的磁盘空间使用率
【Linux之Shell脚本实战】监控系统的磁盘空间使用率 一、脚本要求二、检查本地系统环境1.检查系统版本2.检查系统内核版本三、编写disk.sh脚本1.创建脚本目录2.编写disk.sh脚本3.执行测试脚本四、查看脚本执行日志文件五、本次实践总结1.脚本定时执行2.实践总结一、脚本要求 1.…...
【Python安全编程】Python实现网络主机和端口扫描
文章目录前言环境准备Python实现主机扫描基于ARP协议基于ICMP协议普通版本多线程版本Python实现端口扫描扫描单个端口利用多线程扫描端口后记前言 本文主要讲几个利用Python实现网络扫描的小例子,可以结合多线程或多进程编程改进实例 我曾经走过多遥远的路 跨越过多…...
四大垃圾回收算法七大垃圾回收器
JVM的运行时内存也叫做JVM堆,从GC的角度可以将JVM分为新生代、老年代和永久代。其中新生代默认占1/3堆内存空间,老年代默认占2/3堆内存空间,永久代占非常少的对内存空间。新生代又分为Eden区、SurvivorFrom区和SurvivorTo区, Eden…...
P1217 [USACO1.5]回文质数 Prime Palindromes
[USACO1.5]回文质数 Prime Palindromes 题目描述 因为 151151151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151151151 是回文质数。 写一个程序来找出范围 [a,b](5≤a<b≤100,000,000)[a,b] (5 \le a < b \l…...
用大白话给你科普,到底什么是 API(应用程序编程接口)?
何为API?如果你在百度百科上搜索,你会得到如下结果:API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组…...
企业电子招采系统源码——信息数智化招采系统
信息数智化招采系统 服务框架:Spring Cloud、Spring Boot2、Mybatis、OAuth2、Security 前端架构:VUE、Uniapp、Layui、Bootstrap、H5、CSS3 涉及技术:Eureka、Config、Zuul、OAuth2、Security、OSS、Turbine、Zipkin、Feign、Monitor、…...
【vnc】Ubuntu20.04+vnc安装和配置(中文输入法)
Ubuntu20.04vnc安装和配置(中文输入法) 安装vnc 用以下apt 命令安装: sudo apt install tigervnc-common tigervnc-standalone-server tigervnc-viewer tigervnc-xorg-extension注意,要用standalone-server版本,不要下载Tiger官方安装包&a…...
【排序算法】数据结构排序详解
前言: 今天我们将讲解我们数据结构初阶的最后一部分知识的学习,也是最为“炸裂”的知识---------排序算法的讲解!!!! 目录1.排序的概念及其运用1.1排序的概念1.2排序运用2.常见排序算法的实现2.1 插入排序2…...
【docker知识】DockerFile语法 1:注释指令、解释器指令
一、说明 在docker的指令下工作,似乎很简单,然而,对于复杂工程,这些初级知识是不够的。正确使用DockerFile构建镜像是必须的技能。我们这里假定您已经熟练docker的指令,我们继续上升一个台阶,如何用build和…...
[失业前端恶补算法]JavaScript leetcode刷题top100(一)
专栏声明:只求用最简单的,容易理解的方法通过,不求优化,不喜勿喷 今天更新五个 easy 难度题目: 两数之和 题面 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的…...
HTTP协议
目录 一、HTTP协议 1.http 2.url url的组成: url的保留字符: 3.http协议格式编辑 ①http request ②http response 4.对request做出响应 5.GET与POST方法 ①GET ②POST 7.HTTP常见Header ①Content-Type:: 数据类型(text/html等)在上文…...
javafx学习教程
1.舞台,场景,布局,控件,回调 2.舞台:窗口,一个舞台一个窗口,舞台有舞台基础属性,舞台监听事件,做一些回调 3.fxml里面可以写 页面的布局,控件,然…...
百度百科创建词条教程合集分享,赶紧收藏起来
每一个企业、品牌、人物、产品想要提升自己的知名度,都要创建一个属于自己的百度百科词条,互联网时代,百度搜索引擎的地位是不可撼动的,每天都有上亿的用户在百度上搜索相关内容,百度百科词条在网络营销中占据着举足轻…...
深圳十大集团公司排名/上海百度推广优化公司
1、删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。 [cpp] view plaincopyprint? #include<stdio.h> #include<stdlib.h> #include<string.h> intdelete_sub_str(constchar*str,constchar*sub…...
昆明网站建设-中国互联/企业建站流程
摘要:以惠更斯—菲涅耳原理为理论基础,介绍了几种实现夫琅和费衍射的方法。用理论推导得出了夫琅和费单缝衍射的光强公式,并且得出了光强在衍射屏上分布的特点。对夫琅和费单缝衍射进行数学建模,运用MATLAB软件进行了计算机模拟仿…...
专业网站建设集团/软文广告经典案例分析
vue 兼容IE报错解决方案参考文章: (1)vue 兼容IE报错解决方案 (2)https://www.cnblogs.com/CandyManPing/p/10195377.html 备忘一下。...
湿地保护宣教网站建设意义/网络宣传怎么做
我是Android和AndroidStudio(AS)的新手,我已经花了好几个小时尝试使用AS“克隆”一个项目。非常感谢上面给出的现有答案让我走上正确的道路。对于任何一个新手,像我一样,以下详细的分步说明应该证明是有用的:>使用Windows资源管…...
帝国cms手机网站/拉新任务接单放单平台
在使用MySQL 时 有时会登录遇到错误 ERROR 2003 (HY000): Cant connect to MySQL server on localhost (10061) 以下方法几步解决问题, 让mysql恢复如初(不会删除原有表和数据): 1.找到mysql安装目录,以我的为例&…...
wordpress主题是用什么开发出来的/sem竞价推广代运营收费
设置方法 选中贴图 在属性面板,拖动Aniso Level的值从0~9改变,值越大贴图越清晰,但是消耗也变大,文档说会造成显卡消耗,一般只用在地面上,其他地方没必要 遇到的问题 但是打包到Ipod上面,如果只…...