Java Image 获取桌面图像并创建宏

标签 java image macros image-recognition

好吧,我正在玩一个在线 flash 游戏,你必须尽快点击白框。我如何使用 Java 将其自动化?盒子的位置是随机的。

我尝试使用 Robot 类并使用 getPixelColor,但这太慢了。

那么我需要做的是:

  1. 我的游戏窗口是 500x500 窗口,所以从中获取像素
  2. 找到 5x5 个白框
  3. 点击它们

有什么建议吗?

最佳答案

您可以使用 Rectangle类,使用“包含”方法。

或者您可以创建自己的,基本上是这样工作的:

  1. 跟踪您的盒子、它们当前的 (x, y) 位置和它们的(宽度、高度)
  2. 使用 mouseClicked() 事件获取点击的 (x, y) 位置
  3. 在 mouseClicked() 内部,遍历所有框,并检查鼠标点击 (x, y) 是否在框内

例如,如果屏幕上有两个框:

boxA: (x, y, width, height) = (0, 0, 10, 10)
boxB: (x, y, width, height) = (20, 20, 10, 10)

这会为您提供两个框,每个框的大小为 10x10 像素。 “boxA”的左上角位于 (0, 0),“boxB”的左上角位于 (20, 20)。

如果“mouseClicked”事件的 (x, y) 坐标是 (7, 7),那么它在“boxA”的范围内(因为点 (7, 7) 在 (0, 0) 和 ( 10, 10)

如果“mouseClicked”事件的 (x, y) 坐标是 (23, 25),那么它在“boxB”内,因为 (23, 25) 在 (20, 20) 和 (30, 30) 之间

您说得对,getPixelColor 对于您要执行的操作来说太慢了。遍历方框列表会快很多


如果您想深入研究一个更深入的例子,这里有一篇关于 collision detection 概念的文章.

关于Java Image 获取桌面图像并创建宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5849844/

相关文章:

java - 用于搜索段落中特定行的正则表达式

java - 其他面板的背景图片问题

android - 我需要帮助将多个图像和文本添加到我的 android 按钮

c++ - 预处理器如何处理宏?

objective-c - 预处理器宏 C/Objective-C

java - 如何过滤Map中只有3个字符串长度的键?

java - 将两个最多 50 位的整数相加

java - 即使在继续时也保留 Java for 循环中集合的前一个元素

Android 相机图像未上传到服务器。使用多部分数据 Http post

如果 != 0,则返回函数结果的 C 宏