Ignore:
Timestamp:
Apr 6, 2010, 8:47:34 PM (15 years ago)
Author:
Rick van der Zwet
Message:
  • First pixel recognition tester
  • Action based on colour state change
File:
1 edited

Legend:

Unmodified
Added
Removed
  • java-automator/src/nl/rickvanderzwet/farmville/ScreenRecognition.java

    r103 r104  
    1111import java.awt.geom.Point2D;
    1212import java.awt.image.BufferedImage;
     13import java.awt.image.Raster;
    1314import java.awt.image.RasterFormatException;
    1415import java.io.IOException;
     
    2122        static Point mouse;
    2223        static BufferedImage bi;
     24        static Robot bot;
     25       
     26        static boolean freezeImage = false;
     27       
     28        private static void pressMouse() throws InterruptedException {
     29                bot.mousePress(InputEvent.BUTTON1_MASK);       
     30                bot.mouseRelease(InputEvent.BUTTON1_MASK);
     31
     32        }
     33       
    2334        public ScreenRecognition() {
    2435                setTitle("Image demo Example");
     
    4960        public void actionPerformed(ActionEvent event) {
    5061                Component c = (Component)event.getSource();
    51                 System.out.println(c.getName());
    52                 c.getToolkit().beep();
     62                if (c.getName() == "redButton") {
     63                        c.getToolkit().beep();
     64                        try {
     65                                Thread.sleep(3000);
     66                        } catch (InterruptedException e) {
     67                                // TODO Auto-generated catch block
     68                                e.printStackTrace();
     69                        }
     70                        freezeImage = !freezeImage;
     71                }
    5372        }
    5473       
     
    5877
    5978                g.drawRect(18, 48, mouseSurround * 2 + 4, mouseSurround * 2 + 4);
     79                g.setColor(pixel);
     80                g.fillRect(300,100,20,20);
    6081                g.drawImage(bi,20, 50, this);
    6182        }
     
    6384        public static void main(String[] args) throws AWTException, InterruptedException  {
    6485                //bot.mouseMove(100, 100);
    65                 Robot bot = new Robot();
     86                bot = new Robot();
    6687                ScreenRecognition foo = new ScreenRecognition();
    6788
     
    7192                        pixel = bot.getPixelColor(mouse.x, mouse.y);
    7293                        try {
     94                                if (!freezeImage) {
    7395                                bi=bot.createScreenCapture(new Rectangle(mouse.x + mouseSurround,
    7496                                                mouse.y + mouseSurround));
     
    7698                                                mouse.y - mouseSurround,
    7799                                                mouseSurround * 2, mouseSurround * 2);
     100                               
     101                                /* See is enabled */
     102                                Color target = new Color(255, 170, 0);
     103                                int pixelTreshold = 10;
     104                               
     105                                search: for (int x = 0; x < bi.getWidth(); x++) {
     106                                        for (int y = 0; y < bi.getHeight(); y++){
     107                                                if (bi.getRGB(x, y) == target.getRGB()) {
     108                                                        pixelTreshold--;
     109                                                        if (pixelTreshold == 0) {
     110                                                                break search;
     111                                                        }
     112                                                }
     113                                        }
     114                                }
     115                                if (pixelTreshold == 0) {
     116                                        pressMouse();
     117                                        System.out.println("Button Click");
     118                                }
     119
     120                                }
    78121                                foo.repaint();
    79122                        } catch (IllegalArgumentException e) {
Note: See TracChangeset for help on using the changeset viewer.