画面上の特定の画像の場所を見つけようとしていますが、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;
}
しかし、私に関する限り、その関数は正常に機能します。何か足りないものはありますか?ここにいる誰かが私のエラーをほんの数分で見つけることができると確信しています。