Java Robot类鼠标移动到特定像素的位置(鼠标单击一种颜色)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Robot类鼠标移动到特定像素的位置(鼠标单击一种颜色)相关的知识,希望对你有一定的参考价值。

如何找到正在改变坐标的颜色的位置,并在识别后需要点击。

程序的目的是在游戏中完成任务,需要点击不总是在同一位置的不同颜色。

代码当前在执行程序5秒后获得鼠标坐标的颜色


public class RobotColorClick 
{

    public RobotColorClick () throws AWTException, IOException, InterruptedException 
    {
        Robot robot = new Robot();

        //Delay 5 seconds
        robot.delay(5000);        

        //Gets color (value of red,green,blue) from the mouse position after 5 seconds 
        Color color = robot.getPixelColor( MouseInfo.getPointerInfo().getLocation().x 
                , MouseInfo.getPointerInfo().getLocation().y);

        //Delay 3 seconds
        robot.delay(3000);

        //Mouse moves to X and Y then right click
        //Problem! How to set X and Y to position color coordinates, position will change
        robot.mouseMove(x, y);
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.mouseRelease(InputEvent.BUTTON1_MASK);

    }


    public static void main(String[] args) throws AWTException, IOException, 
                InterruptedException 
    {
        new RobotColorClick ();
    }
}
答案

您最有可能需要拍摄一个屏幕截图,然后从原始位置螺旋输出(假设“颜色”采用连续路径而不是跳转),将该像素的颜色与您要查找的颜色进行比较。一旦确定了,就做mouseMove(newX, newY),然后是mousePress() / mouseRelease()方法。

以上是关于Java Robot类鼠标移动到特定像素的位置(鼠标单击一种颜色)的主要内容,如果未能解决你的问题,请参考以下文章

使用Robot类模拟鼠标键盘事件

java工作复习——鼠标事件——action类——模拟鼠标从一个位置移动到另外一个位置

以鼠标位置为中心的图像缩放

JAVA编写类似按键精灵的程序用于游戏 会被检测到么?懂底层工作原理的JAVA高手进

Java关于Robot类的使用以及远程桌面的实现

JavaSE——常用类