2016-08-11 2 views
0

ピクセルで反応し、選択したピクセルが変更されたときにカウンタを増やしているプログラムを作成したい。それのためにRobotクラスを使用しています。 原因:ピクセルリスナー(ピクセル変化に反応するリスナー)

Boolean dontcount = false; 
Robot robot = new Robot(); 
while (true) { 
if(robot.getPixelColor(900, 900).equals(b)){ 
    if(dontcount == false){ 
     counter=counter++; 
     dontcount = true; 
     System.out.println(counter); 
    } 
} else { 
    dontcount = false; 
} 
} 

私のPCを殺している、私は別の方法を探しています。私はリスナーと一緒にその可能性を推測します。しかし、私はどのように考えていない。任意のソリューションですか?

答えて

0

あなたのコードはコンパイルされず、あまり意味がないように私はそれを書き換えました。将来、完全な例があることを確認してください。

コードがあなたのPCを殺している理由は、whileループにわずかな待ち時間を入れて、コンピュータに呼吸する機会があることを知らせる必要があるからです。 10msは十分です。

import java.awt.AWTException; 
import java.awt.Color; 
import java.awt.Robot; 

public class Main 
{ 
    public static void main(String[] args) 
    { 
     Robot robot = null; 
     try 
     { 
      robot = new Robot(); 
     } catch (AWTException e1) 
     { 
      e1.printStackTrace(); 
     } 

     Color lastPixelColor = null; 
     int counter = 0; 

     while (true) 
     { 
      Color pixelColor = robot.getPixelColor(900, 900); 
      if (!pixelColor.equals(lastPixelColor)) 
      { 
       counter++; 
       System.out.println(counter); 
      } 

      lastPixelColor = pixelColor; 

      try 
      { 
       // You need to sleep so you don't murder your CPU 
       Thread.sleep(10); 
      } catch (InterruptedException e) 
      { 
      } 
     } 
    } 
} 
関連する問題