Estoy haciendo un programa que automáticamente juega un juego llamado aturdir. Actualmente, tengo todos los componentes establecidos, sin embargo, estoy teniendo la determinación de si el bloque es de color sobre el área que lo golpeó en.
He intentado utilizar la fórmula de la distancia que se proporcionó en un hilo que tenía una pregunta similar, pero estoy recibiendo constantemente resultados erróneos.
boolean similarTo(Color c,Color v){
double distance = Math.sqrt((c.getRed() - v.getRed())*(c.getRed() - v.getRed()) + (c.getGreen() - v.getGreen())*(c.getGreen() - v.getGreen()) + (c.getBlue() - v.getBlue())*(c.getBlue() - v.getBlue()));
// double average1 = c.getRed()+c.getBlue()+c.getGreen();
// double average2 = v.getRed()+v.getBlue()+v.getGreen();
if(distance < 100 ){
return true;
}else{
return false;
}
}
El uso de este se debe presionar cuando el píxel llega a ser similar, pero los resultados siempre difieren, como se dice que son los mismos todo el tiempo, de no actualizar.
Su problema puede deberse a la utilización de la equivocada Color
clase. Puede encontrar 2 Color
clases de JDK:
java.awt.Color
: ¿Qué expone métodos getRed, getGreen, GetBlue que regresanint
valores entre 0-255 .javafx.scene.paint.Color
: ¿Qué expone métodos getRed, getGreen, GetBlue que regresandouble
valores entre 0-1 .
Si está utilizando javafx.scene.paint.Color
la distancia nunca será mayor que 1,73. Tiene que usar java.awt.Color
para tener una distancia de 0 - 441,67