1

画面上の特定の画像の場所を見つけようとしていますが、Javaはまったく新しいので、これを台無しにする可能性があると思います。これが私が試したことです。

public Point getLocationOfImage(int[][] pixels){
    Toolkit toolkit = Toolkit.getDefaultToolkit();
    Robot robot;
    Point point = new Point(0, 0);;
    boolean success = false;
    try {
        robot = new Robot();
    } catch (AWTException e) {
        robot = null;
        e.printStackTrace();
    }
    Dimension screenDimensions = toolkit.getScreenSize();
    retry:
    for(int i = 0; i < screenDimensions.width; i++){
        for(int i2 = 0; i2 < screenDimensions.height; i2++){
            //check region
            for(int j = 0; j < 30; j++){
                for(int j2 = 0; j2 < 30; j2++){
                    BufferedImage test = robot.createScreenCapture(new Rectangle(i + j, i2 + j2, 30, 30));
                    toDrawG.drawImage(test, 30, 0, null);
                    try {
                        Thread.sleep(1);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                    if(test.getRGB(i + j, i2 + j2) == pixels[j][j2]){
                        continue;}
                    else{
                        break retry;
                    }
                }
            }
        }
    }
    return point;
    }

とにかく、それはまったく機能していないようで、pixels[][]は別の関数からのものです。

public static int[][] getPixels(BufferedImage i){
    int temp[][] = new int[i.getWidth()][i.getHeight()];
    for(int n = 0; n < i.getWidth(); n++){
        for(int n2 = 0; n2 < i.getHeight(); n2++){
            temp[n][n2] = i.getRGB(n, n2);
        }   
    }
    return temp;
}

しかし、私に関する限り、その関数は正常に機能します。何か足りないものはありますか?ここにいる誰かが私のエラーをほんの数分で見つけることができると確信しています。

4

0 に答える 0