【发布时间】:2021-06-27 11:17:34
【问题描述】:
我打开了另一个窗口,其中另一个程序会在按下特定键时做出响应,我将调用它program1。
我现在正在使用消息末尾的程序对其进行测试,我将调用它 program2,program2 代码应该按下程序 1 响应的键到特定的线索。
它应该按w, s, a 和 d 以随机顺序。它应该向上、向左、向下或向右按,具体取决于具有 RGB 颜色 (255,106,100) 的对象在 gx,gy 的哪一侧。
Program2 还流式传输我屏幕上的内容,因此它可以看到颜色。 (我知道有些变量是没用的,只是懒得删掉,发现没用过,如果是问题的原因,你只需要指出)
代码:
int x=1;
int y=0;
int gxbeta=0;
int gybeta=0;
int gx;
int gy;
int targetx=0;
int targety=0;
int i;
int h;
int dice=0;
color z=color(76,140,90);
color team= color(255,106,100);
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.awt.Rectangle;
Robot robot;
void setup(){
size(1920, 1080);
//Let's get a Robot...
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
println(e.getMessage());
exit();
}}
void draw(){
background(0);
Rectangle r = new Rectangle(0, 0, width, height);
BufferedImage img1 = robot.createScreenCapture(r);
PImage img2 = new PImage(img1);
image(img2, 0, 0);
//Zoek de kleur met de nieuwe get
y++;
if(y==height){
y=0;
}
if(y==0){
x=x+1;
}
color colorFromget= get(gxbeta,gybeta);
color colorFromGet = get(x,y);
if(colorFromGet == team){targetx=x;
targety=y;}
if(z==colorFromget){gx=gxbeta; gy=gybeta;}
//Kijk of hij in range van een kant is en schiet
if ((targetx<gy)&&(targety < (gy + 38)) && (targetx > (gy - 38))){
robot.keyPress(KeyEvent.VK_LEFT);
delay(10000);
robot.keyRelease(KeyEvent.VK_LEFT);}
//Etc
ellipse(gx, gy, 25, 25);
//loop een random kant op en laat dan de key los
dice=random(0.3);
if(dice==0){robot.keyPress(KeyEvent.VK_W);
delay(10000);
robot.keyRelease(KeyEvent.VK_W);}
if(dice==0.1){robot.keyPress(KeyEvent.VK_A);
delay(10000);
robot.keyRelease(KeyEvent.VK_A);}
if(dice==0.2){robot.keyPress(KeyEvent.VK_S);
delay(10000);
robot.keyRelease(KeyEvent.VK_S);}
if(dice==0.3){robot.keyPress(KeyEvent.VK_D);
delay(10000);
robot.keyRelease(KeyEvent.VK_D);}
}
【问题讨论】:
标签: java processing