屏幕找图实现植物大战僵尸自动收取阳光

server/2024/10/21 23:12:12/

阳光图片

在这里插入图片描述

在这里插入图片描述

2.在截图中查找阳光,找到阳光使用鼠标点击进行收集

java">import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.MouseInfo;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.awt.event.InputEvent;import javax.imageio.ImageIO;
import javax.swing.JFrame;public class FullScreenImageSearch {static Robot robot;Rectangle screenRect;public int[] findImageInFullScreen(BufferedImage targetImage) throws AWTException {//Robot robot = new Robot();Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();if (screenRect == null) {screenRect = new Rectangle(screenSize);}// Rectangle screenRect = new Rectangle(558,155,800,630);BufferedImage screenshot = robot.createScreenCapture(screenRect);int targetWidth = targetImage.getWidth();int targetHeight = targetImage.getHeight();int screenWidth = screenshot.getWidth();int screenHeight = screenshot.getHeight();for (int y = 0; y < screenHeight - targetHeight; y++) {for (int x = 0; x < screenWidth - targetWidth; x++) {boolean match = true;for (int ty = 0; ty < targetHeight; ty++) {for (int tx = 0; tx < targetWidth; tx++) {int screenPixel = screenshot.getRGB(x + tx, y + ty);int targetPixel = targetImage.getRGB(tx, ty);if (!isSimilarPixel(screenPixel, targetPixel)) {match = false;break;}}if (!match) break;}if (match) return new int[]{x, y};}}return null;}private static boolean isSimilarPixel(int pixel1, int pixel2) {int r1 = (pixel1 >> 16) & 0xff;int g1 = (pixel1 >> 8) & 0xff;int b1 = pixel1 & 0xff;int r2 = (pixel2 >> 16) & 0xff;int g2 = (pixel2 >> 8) & 0xff;int b2 = pixel2 & 0xff;int diffR = Math.abs(r1 - r2);int diffG = Math.abs(g1 - g2);int diffB = Math.abs(b1 - b2);return diffR + diffG + diffB < (255 * 3) * (1 - 0.85);}public static void main(String[] args) throws AWTException, IOException, InterruptedException {// 假设这里有一个目标小图,实际应用中可以从文件读取等方式获取//BufferedImage targetImage = new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);robot = new Robot();FullScreenImageSearch f = new FullScreenImageSearch();BufferedImage targetImage = ImageIO.read(new File("b:\\sun.png"));while(true){int[] location = f.findImageInFullScreen(targetImage);if (location!= null) {System.out.println("小图找到了!坐标为:(" + location[0] + ", " + location[1] + ")");int x = location[0];int y = location[1];robot.mouseMove(x+targetImage.getWidth()/2, y+targetImage.getHeight()/2);robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);robot.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);} else {System.out.println("小图未找到。");}Thread.sleep(1500); }}
}

http://www.ppmy.cn/server/133743.html

相关文章

浅析建造者模式

建造者模式 一、基础知识介绍 1. 问题引出 上图面存在的问题&#xff1a;产品和产品创建的过程是封装在一起的。耦合性太强 解决方法: 将二者解耦和 2.建造者模式介绍 将复杂对象的构造过程抽象出来&#xff0c;用户不用知晓里面的构建细节 3.四个角色 建造者模式的四个角…

centos8配置java环境变量jdk8u422-b05

1. 下载 JDK 8u422-b05 首先&#xff0c;确保已经下载了 JDK 8u422-b05 的二进制文件。如果还没有下载&#xff0c;你可以去 Oracle 官方网站或者其他可信的源下载 JDK 8u422。 2. 安装 JDK 将下载的 JDK 文件解压到 /usr/local/java 目录下&#xff1a; sudo mkdir /usr/l…

Spire.PDF for .NET【页面设置】演示:从 PDF 中删除页面

PDF 文档可以包含多个页面&#xff0c;这些页面具有不同的文本内容、图像或其他对象。有时&#xff0c;用户可能需要删除某些页面&#xff0c;这些页面包含不正确绘制的对象或与文档主题无关的页面。本文将演示如何使用Spire.PDF for .NET以编程方式从现有 PDF 文档中删除/移除…

移动 Web 核心笔记 (三)

移动适配 屏幕分辨率: 纵横向上的像素点数&#xff0c;单位是px PC 分辨率 1920 * 1080 1366 * 768 …… 缩放 150% 1920 / 150% 1080 / 150% 总结 硬件分辨率 → 物理分辨率&#xff08;出厂设置&#xff09; 缩放调节的分辨率 → 逻辑分辨率&#xff08;软件/驱动设…

七天入门LLM大模型 |提示词工程-Prompt Engineering

标题00 引 言 前一天我们讲到&#xff1a;prompt&#xff08;提示词&#xff09;是我们和LLM互动最常用的方式&#xff0c;我们提供给LLM的Prompt作为模型的输入&#xff0c;并希望LLM反馈我们期待的结果。 虽然LLM的功能非常强大&#xff0c;但LLM对提示词&#xff08;prom…

jmeter中发送post请求遇到的问题

用jmeter发送post请求&#xff0c;把请求参数放在Body Data处&#xff0c;参数都写得正确&#xff0c;但没想到结果每次都报错&#xff0c;直接响应结果乱七八糟&#xff0c;改成用Parameters,反而不乱报错了。 上图 请求里如下 另外一些请求也是这样 这个响应结果也是错误的…

ES推荐搜索、自动补全,并且springBoot集成

推荐搜索 在搜索过程中&#xff0c;因为单词的拼写错误&#xff0c;没有得到任何的结果&#xff0c;希望ES能够给我们一个推荐搜索。 GET movies/_search {"suggest": {# title_suggestion为我们自定义的名字"title_suggestion": {"text": &qu…

SpringBoot启动web项目的最少依赖

1、pom.xml 文件&#xff1a;启动web项目 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"htt…