Added getRect()

This commit is contained in:
mrbesen 2017-10-26 13:09:37 +02:00
parent ae521ece46
commit 724d5c51ea
3 changed files with 18 additions and 15 deletions

View File

@ -46,7 +46,7 @@ public class Clicker implements Runnable{
private void sleep( int ms) { private void sleep( int ms) {
//update ui //update ui
Main.get().ui.printTime((int) ( (System.currentTimeMillis()-started) / 1000 )); Main.get().ui.printTime((int) ( (System.currentTimeMillis()-started) / 1000 ));
if(skipbattle) if(skipbattle)
return; return;
try { try {
@ -324,22 +324,22 @@ public class Clicker implements Runnable{
return false; return false;
//long start = System.currentTimeMillis(); //long start = System.currentTimeMillis();
int count = 0; int count = 0;
BufferedImage img = bot.createScreenCapture(new Rectangle(p.x-10, p.y-10, 20, 20));//smile BufferedImage img = bot.createScreenCapture(getRect(p.x, p.y));//smile
for (int x = 0; x < 20; x++) { for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < 20; y++) { for (int y = 0; y < img.getHeight(); y++) {
int color = img.getRGB(x, y); int color = img.getRGB(x, y);
int red = (color & 0x00ff0000) >> 16; int red = (color & 0x00ff0000) >> 16;
int green = (color & 0x0000ff00) >> 8; int green = (color & 0x0000ff00) >> 8;
int blue = color & 0x000000ff; int blue = color & 0x000000ff;
double distance = Math.sqrt(Math.pow((blue - goalcolor.getBlue()), 2) double distance = Math.sqrt(Math.pow((blue - goalcolor.getBlue()), 2)
+ Math.pow((red - goalcolor.getRed()), 2) + Math.pow((green - goalcolor.getGreen()), 2));//calculate the distance between the goalcolor and the test color + Math.pow((red - goalcolor.getRed()), 2) + Math.pow((green - goalcolor.getGreen()), 2));//calculate the distance between the goalcolor and the test color
if (distance < mincolordistance) if (distance < mincolordistance)
count++; count++;
} }
} }
// System.out.println("counts: " + count);//some performance checking // System.out.println("counts: " + count);//some performance checking
return count > 70; return count > 4;//engough pixel have the right color
} }
public Point getMouse() { public Point getMouse() {
@ -396,6 +396,10 @@ public class Clicker implements Runnable{
unsupported unsupported
} }
public static Rectangle getRect(int x, int y) {
return new Rectangle(x-2, y-2, 5, 5);
}
public void toggleOverlay() { public void toggleOverlay() {
if(ov == null) { if(ov == null) {

View File

@ -2,7 +2,6 @@ package mrbesen.cr.auto.clicker;
import java.awt.AWTException; import java.awt.AWTException;
import java.awt.Color; import java.awt.Color;
import java.awt.Rectangle;
import java.awt.Robot; import java.awt.Robot;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.util.Comparator; import java.util.Comparator;
@ -24,7 +23,7 @@ public class PosColSelector extends PosSelector {
try { try {
Robot rob = new Robot(); Robot rob = new Robot();
Point p = ui.bot.getMouse(); Point p = ui.bot.getMouse();
BufferedImage img = rob.createScreenCapture(new Rectangle(p.x-10, p.y-10, 20, 20)); BufferedImage img = rob.createScreenCapture(Clicker.getRect(p.x, p.y));
//calculate avg color; //calculate avg color;
int red = 0; int red = 0;
int green = 0; int green = 0;
@ -46,8 +45,8 @@ public class PosColSelector extends PosSelector {
//calculate distances: //calculate distances:
List<Integer> dist = new LinkedList<Integer>(); List<Integer> dist = new LinkedList<Integer>();
for (int x = 0; x < 20; x++) { for (int x = 0; x < img.getWidth(); x++) {
for (int y = 0; y < 20; y++) { for (int y = 0; y < img.getHeight(); y++) {
int color = img.getRGB(x, y); int color = img.getRGB(x, y);
int redf = (color & 0x00ff0000) >> 16; int redf = (color & 0x00ff0000) >> 16;
int greenf = (color & 0x0000ff00) >> 8; int greenf = (color & 0x0000ff00) >> 8;

View File

@ -62,7 +62,7 @@ public class UI implements ActionListener {
private JButton skip = new JButton("SKIP"); // the button, to skip waiting private JButton skip = new JButton("SKIP"); // the button, to skip waiting
private JButton pause = new JButton("Pause"); private JButton pause = new JButton("Pause");
private JButton exit = new JButton("EXIT"); private JButton exit = new JButton("EXIT");
private JButton overlay = new JButton("Overlay"); private JButton overlay = new JButton("Overlay[Experimental]");
private JLabel info = new JLabel("Define positions, to start."); private JLabel info = new JLabel("Define positions, to start.");
private JLabel time = new JLabel("0 s"); private JLabel time = new JLabel("0 s");