2

座標を変更し、識別後にクリックする必要がある色の位置を見つける方法。

プログラムの目的は、ゲーム内のタスクを完了することであり、常に同じ位置にあるとは限らないさまざまな色をクリックする必要があります。

コードは現在、プログラムを実行してから 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 ();
    }
}
4

2 に答える 2

1

ほとんどの場合、スクリーンショット画像を取得してから、そのピクセルの色と探している色を比較して、元の場所からスパイラルアウトします (「色」が連続したパスを取り、ジャンプしないと仮定します)。それが特定されたら、実行してからmouseMove(newX, newY)/mousePress()メソッドmouseRelease()を実行します。

于 2013-03-28T16:41:12.457 に答える