嗨伙计们
我想在我的电脑上赢得一个硬视频游戏。规则很简单:当屏幕全部变白时,我必须立即按空格键。我必须做200次:/
也许一个简单的Java应用程序可以帮助我:P像这样:
new Thread(){
public void run(){
while(true){
Color c = getPredominantColorOfTheScreen();
if (c.equals(Color.white)){
pressTheSpacebar();
}
sleep(10);
}
}
}.start();
有人可以帮我写这两个功能吗? :)
游戏是全屏的
答案 0 :(得分:2)
您所在的课程是robot class。在关键新闻方面,keyPress(KeyEvent.VK_SPACE)
将会这样做。就屏幕颜色而言,机器人将获得单个像素的颜色而不是屏幕的主色(使用getPixelColor()
方法。但是,如果整个屏幕变为这种颜色(或仅仅是屏幕)你实际上只需要检查1个像素。
答案 1 :(得分:1)
查看课程java.awt.Robot
- 它包含您应该可以用于此目的的方法。我建议不要计算“屏幕的主要颜色”,这可能会相当慢,你只需看一下中间某个地方的一个小部分的捕捉,以及它是否都是白色的。
答案 2 :(得分:1)
您需要查看Java.awt.Robot类来执行这两项操作。
createScreenCapture()
功能将截取屏幕截图。
然后,您需要使用keyPress()
功能按空格键。
除此之外,您可能需要在按空格键时切换焦点对应的应用程序,您可以使用alt-tab
按键组合或移动鼠标指针来执行此操作在游戏窗口上点击那里。或者,如果这些方法都不起作用,请将鼠标指针移动到任务栏/停靠栏上,无论平台使用什么,并在那里触发点击。
请查看此网页以获取更多帮助。
http://download.oracle.com/javase/1.5.0/docs/api/java/awt/Robot.html
答案 3 :(得分:0)
我知道无法使用java访问视频内存而不使用本机函数。
也许你可以看看 Jogl ,但我担心这甚至不允许你访问另一个应用程序的视频内存。
将键注入键盘缓冲区需要使用SendInput
或keybd_event
等本机函数。