像素监听器(监听器对像素变化做出反应)
Pixel Listener (Listener reacting on Pixel changes)
我想创建一个程序,它对某些像素做出反应,并在更改选定像素时增加计数器。
我正在为它使用机器人 class。导致这个:
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 的原因是您应该在 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)
{
}
}
}
}
我想创建一个程序,它对某些像素做出反应,并在更改选定像素时增加计数器。 我正在为它使用机器人 class。导致这个:
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 的原因是您应该在 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)
{
}
}
}
}