如何找到正在改变坐标的颜色的位置,并在识别后需要点击。
程序的目的是在游戏中完成任务,需要点击不总是在同一位置的不同颜色。
代码当前在执行程序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()
方法。